/ / Entity Framework 7 - Migrácie: ako určiť poskytovateľa databázy a reťazec pripojenia iba pre migrácie - entita-rámec

Entity Framework 7 - Migrácie: ako špecifikovať poskytovateľa databázy a reťazec pripojenia len pre migrácie - entity-framework

Existuje spôsob, ako určiť, ktoréDataProvider (SQL Server) a ConnectionString, ktoré sa majú použiť iba na generovanie migrácií (Add-Migration) a aktualizáciu databázy (Update-Database)? Nechcem napevno zadať výber poskytovateľa údajov a načítanie pripojovacieho reťazca do DbContext (.UseSqlServer ()).

Myslím, že EF6 môže zvoliť pripojovací reťazec priamo z web.config, je niečo podobné v EF7?

odpovede:

1 pre odpoveď č. 1

Nie, musíte použiť optionsBuilder:

príklad:

string oldConnectionString =@"Server = .;Initial Catalog=EFTutorial; AttachDbFilename=|DataDirectory|EFTutorial.mdf; Trusted_Connection = True; MultipleActiveResultSets = true";

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(oldConnectionString );
base.OnConfiguring(optionsBuilder);
}

môžete tiež načítať ako json a načítať ich priamo z app.config alebo web.config.

Ak používate .Net Core:

vo svojom appsettings.json môžete definovať reťazec spojenia nasledovne:

{
{
....

},
"Data": {
"ConnectionString": "..."
}
}

pri spustení aplikácie ho musíte načítať:

// Set up configuration sources.
var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json");
builder.AddEnvironmentVariables();
Configuration = builder.Build().ReloadOnChanged("appsettings.json");

Potom musíte tiež nakonfigurovať Entity Framework v Startup.cs.

public void ConfigureServices(IServiceCollection services)
{
...
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<AppContext>(options =>
{
options.UseSqlServer(Configuration "Data:ConnectionString"]); });
services.AddScoped<AppContext, AppContext>();

...
}
}

Dôležitá vec tu:

services.AddScoped((_) => new AppContext(Configuration["Data:DefaultConnection:ConnectionString"]));

https://docs.asp.net/en/latest/data/entity-framework-6.html

Príklady reťazca reťazcov v Entity Framework Core 1.0 / 7: https://docs.asp.net/en/latest/fundamentals/configuration.html

Starý spôsob (môžete to urobiť aj s EF Core) mynačítajte reťazec conenctionString z App.config alebo web.config a procesom migrácie Add-Migration / Update-Database, EF automaticky nájde pripojovací reťazec. Ale môžete tiež zadať reťazec spojenia pre Add-Migration v NuGet comamnd riadku ako parameter.

Dúfam, že to váš problém vyrieši!