Prima di iniziare, assicurarsi che si compila contro completo .NET Framework nel vostro project.json
come Entity Framework 6 non supporta .NET Core. Se sono necessarie funzionalità multipiattaforma, è necessario eseguire l'aggiornamento a Entity Framework Core.
Nel file project.json specificare un singolo target per l'intero.NET Framework:
"frameworks": {
"net46": {}
}
e poi stringhe di connessione configurazione e l'iniezione di dipendenza
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(string nameOrConnectionString) : base(nameOrConnectionString)
{
}
}
Nella classe di avvio entro ConfigureServices aggiungono metodo factory del contesto con la sua stringa di connessione. Il contesto dovrebbe essere risolto una volta per ambito per garantire le prestazioni e garantire un funzionamento affidabile di Entity Framework.
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped((_) => new ApplicationDbContext(Configuration["Data:DefaultConnection:ConnectionString"]));
// Configure remaining services
}
ntity Framework 6 permette la configurazione da specificare in XML (in web.config o app.config) oppure tramite il codice. A partire da ASP.NET Core, tutta la configurazione è basata su codice.
configurazione Codice-base è realizzato mediante la creazione di una sottoclasse di System.Data.Entity.Config.DbConfiguration
e applicando System.Data.Entity.DbConfigurationTypeAttribute
al DbContext sottoclasse.
Il nostro file di configurazione in genere si presentava così:
<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>
L'elemento defaultConnectionFactory imposta la fabbrica per le connessioni. Se questo attributo non è impostato, il valore predefinito è SqlConnectionProvider. Se, al contrario, viene fornito un valore, la classe data verrà utilizzata per creare DbConnection con il suo metodo CreateConnection. Se la data fabbrica ha alcun costruttore di default, allora è necessario aggiungere i parametri che vengono utilizzati per costruire l'oggetto
[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);
}
}
In questo articolo vi mostrerà come utilizzare Entity Framework 6 all'interno di un'applicazione ASP.NET core. https://docs.asp.net/en/latest/data/entity-framework-6.html
È necessario includere ancora System.Data nel progetto? Andrebbe anche nelle dipendenze? – Yashvit
non è necessario impostare le dipendenze, ma poiché EF 6 non è supportato da .net core, è necessario assicurarsi che il framework faccia riferimento a "dnx451" anziché a "dotnet" nel project.son. –
Come risposta da kenstone, ConfigurationBuilder dovrebbe essere usato nell'RC, invece di Configurazione. http://stackoverflow.com/a/33834167/3805983 –