Jak rozwiązać Ostrzeżenie: Element 'entityFramework' ma niepoprawny element podrzędny 'provider'. Lista możliwych elementów oczekiwanych: „konteksty”

Bawię się różnymi procedurami EF. Wczoraj zrobiłem nowy projekt iEntity Framework 6 była pierwszą sugestią zNuget więc postanowiłem spróbować, to także bardzo mały projekt przeznaczony wyłącznie do celów edukacyjnych, więc chyba dobrze będzie spróbowaćEF 6 odkąd pracuję głównie zEf 5.

Moja aplikacja jest oparta naCode First podejście. Struktura rozwiązania jest pokazana na ekranie drukowania:

ProjektCodeFirstClasses ma trzymać moich Entitów. Dla uproszczenia i dlatego, że podążam za samouczkiem, używam tylko jednej klasy, którą możesz zobaczyć -Customer.cs. Mam tam:

public class RewardContext : DbContext
    { 
        //Specify the name of the base as Rewards
        public RewardContext() : base("Rewards")
        { 
        }

        //Create a database set for each data item
        public DbSet<Purchase> Purchases { get; set; }
        public DbSet<Customer> Customers { get; set; }

    }

I inne klasy -Purchase iCustomer które są trywialne, więc nie wkleję ich tutaj.

Drugi projekt, jaki widzisz, toWindows Forms projekt z jednym formularzem i przyciskiem na nim. Naclick Zdarzenie przycisku Mam całą logikę dodawania nowych rekordów do moich dwóch jednostek zakodowanych na stałe. Oto część tego:

    //some code...
    //Add the record and save it
    context.Customers.Add(newCustomer);
    context.Purchases.Add(newPurchase);
    context.SaveChanges();

    MessageBox.Show("Record Added!");

Do tej pory nic innego niż to, do czego jestem przyzwyczajonyEF 5. Mogę zbudować projekt, mogę go uruchomić i wszystko jest wykonywane zgodnie z oczekiwaniami. Jednak otrzymuję to ostrzeżenie z tytułu:

Warning 1 The element 'entityFramework' has invalid child element 'providers'. List of possible elements expected: 'contexts'. I chociaż używam głównieMS SQL Server Management Studio Zauważyłem, że nie mogę zarządzać swoimi połączeniami / bazami danych z IDE -Visual Studio 2012, ale to nie był problemEF 5.

Moje badania zawęziły możliwe źródło problemu / rozwiązania do ręcznej zmianyApp.config plik, ale jest to obszar, w którym nie mam zbyt dużego doświadczenia, zwłaszcza gdy IDE zajęło się nim doEF 6. Więc wyślę oba mojeApp.config pliki dla tego rozwiązania:

Ten zCodeFirstClasses projekt :

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

I z mojegoTestCodeFirst projekt:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

A inne możliwe rozwiązanie, które znalazłem to:updating the xsd for "validating" EF config section in web/app.config file to recognize newly added EF6 elements nie wiem też, jak to zrobić.

Nawet jeśli otworzęMS SQL Server Management Studio Widzę bazę danych utworzoną dla tej aplikacji, zapisy są zapisywane i ogólnie wydaje się, że działa, ale mimo to chciałbym rozwiązać to ostrzeżenie i dowiedzieć się, jak skonfigurować moje aplikacje na podstawieEF 6 dobrze.

questionAnswers(2)

yourAnswerToTheQuestion