Zanim zaczniesz, upewnij się, że na pełnej kompilacji Framework w twojej project.json
as Entity Framework 6 nie obsługuje .NET Core. Jeśli potrzebujesz funkcji wieloplatformowych, musisz dokonać aktualizacji do Entity Framework Core.
W pliku project.json podaj jeden cel w pełnym zakresie.NET Framework:
"frameworks": {
"net46": {}
}
a następnie ciągi połączeń Konfiguracja i wtrysk zależność
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(string nameOrConnectionString) : base(nameOrConnectionString)
{
}
}
W klasie startowego w ConfigureServices dodać metodę fabryka context z jego ciąg połączenia. Kontekst powinien zostać rozwiązany raz na zakres, aby zapewnić wydajność i zapewnić niezawodne działanie Entity Framework.
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped((_) => new ApplicationDbContext(Configuration["Data:DefaultConnection:ConnectionString"]));
// Configure remaining services
}
ntity ramowa 6 umożliwia konfigurację być określone w XML (w web.config lub app.config) lub przez kod. Od wersji ASP.NET Core cała konfiguracja jest oparta na kodzie. Kod konfiguracji opartej
został osiągnięty poprzez utworzenie podklasy System.Data.Entity.Config.DbConfiguration
i stosowania System.Data.Entity.DbConfigurationTypeAttribute
do DbContext podklasy.
Nasz plik konfiguracyjny zwykle wyglądała tak:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
Element defaultConnectionFactory ustawia fabrykę połączeń. Jeśli ten atrybut nie jest ustawiony, domyślną wartością jest SqlConnectionProvider. Jeśli, z drugiej strony, zostanie podana wartość, dana klasa zostanie użyta do utworzenia metody DbConnection za pomocą jej metody CreateConnection. Jeśli dana fabryka nie ma domyślnego konstruktora następnie należy dodać parametry, które są wykorzystywane do konstruowania obiektowi
[DbConfigurationType(typeof(CodeConfig))] // point to the class that inherit from DbConfiguration
public class ApplicationDbContext : DbContext
{
[...]
}
public class CodeConfig : DbConfiguration
{
public CodeConfig()
{
SetProviderServices("System.Data.SqlClient",
System.Data.Entity.SqlServer.SqlProviderServices.Instance);
}
}
Ten artykuł pokaże, jak używać Entity Framework 6 wewnątrz aplikacji ASP.NET podstawowej. https://docs.asp.net/en/latest/data/entity-framework-6.html
Czy do projektu musimy jeszcze dołączyć System.Data? Czy to też przejdzie w zależności? – Yashvit
nie trzeba ustawiać zależności, ale ponieważ EF 6 nie jest obsługiwany przez rdzeń .net, musisz upewnić się, że twój framework odwołuje się do "dnx451" zamiast "dotnet" w pliku project.son. –
Jak odpowiedział Kenstone, ConfigurationBuilder powinien być użyty w RC zamiast konfiguracji. http://stackoverflow.com/a/33834167/3805983 –