/ / ASP.NET 5 / EF7 pripojovací reťazec v web.config? - asp.net-core, entity-framework-core

Reťazec pripojenia 5/EF7 ASP.NET v súbore web.config?-asp.net-core, entity framework-jadrami

V ASP.Net 4.5 som mohol vložiť svoj pripojovací reťazec do web.config ako využiť web.config transformations takže by som mohol lokálne pracovať s vývojovou databázou a potom, keď publikujem, bude to odkazovať na výrobnú databázu. Teraz pracujem s technológiami ASP.Net 5 a EF 7, ktoré, ako sa zdá, používajú internet config.json súbor na uloženie pripojovacích reťazcov namiesto web.config, S týmto novým spôsobom ukladania súborov nemôžem prísť na to, ako robiť niečo podobné web.config transformations z minulosti. Ako môžem buď nastaviť config.json to ALEBO nakonfigurovať, aby som to mohol urobiť v web.config a EF tam hľadal reťazce?

odpovede:

3 pre odpoveď č. 1

Na web.config transformačná syntax je zameraná na XML formát údajov. Nové konfigurácie pozostávajú z niektorých súborov vo formáte JSON a je možné implementovať scenáre predstavenia veľmi ľahko.

V prvom rade podpora ASP.NET umožňuje nastaviť cieľové prostredie podľa použitia ASPNET_ENV premenná prostredia alebo nastavením Hosting:Environment v launchSettings.json súbor (pozri Properties priečinok vášho projektu). Súbor launchSettings.json môžu byť upravené vo Visual Studio vo vlastnostiach projektu. Najprv by ste si mali zvoliť profil

tu zadajte popis obrázku

a nastavte nastavenie pre každý profil. Prípadne je možné súbor upraviť PropertieslaunchSettings.json manuálne.

Niektoré konfiguračné súbory, napr hosting.json funguje automaticky pomocou postupovania. Môžete tak napríklad zadať rôzne porty a rôzne väzby rozhraní server.urls v hosting.json a hosting.Development.json napríklad.

Zahrnúť logiku postupovania do systému Windows appsettings.json je potrebné zmeniť konštruktora Startup trieda v Startup.cs, Napríklad:

public class Startup
{
public static IConfigurationRoot Configuration { get; set; }

public Startup(IHostingEnvironment env)
{
// Set up configuration sources.
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}

public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc()
.AddJsonOptions(options => {
options.SerializerSettings.ContractResolver =
new CamelCasePropertyNamesContractResolver();
});
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<MyContext>(options => {
options.UseSqlServer(Configuration["Data:ConnectionString"]);
})
.AddDbContext<SM9Context>(options => {
options.UseSqlServer(Configuration["Data:SM9ConnectionString"]);
});
}
}

Vyššie uvedený kód uloží konfiguráciu do Configuration a potom používa ConfigureServices podať injekciu MyContext a SM9Context kontext databázy. Jeden môže napríklad vytvoriť hlavné appsettings.json súbor so všetkými produktívnymi konfiguráciami a vytvoriť appsettings.Development.json súbor, ktorý prepíše iba jeden (od dvoch Data:ConnectionString a Data:SM9ConnectionString) pripojovací reťazec:

{
"Data": {
"ConnectionString": "Server=..."
}
}

ASP.NET skombinuje oba súbory appsettings.json a voliteľné appsettings.Development.json na vytvorenie celej sady konfiguračných parametrov.

Článok a časť dokumentácie popisuje, ako je možné použiť postupovanie v ASP.NET 5.


2 pre odpoveď č. 2

Môžete urobiť niečo také, aby ste stiahli konfigurácie z rôznych súborov * .json, ktoré ich zakladajú na prostredí alebo z premenných prostredia;

var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
.AddEnvironmentVariables();

Môžete tiež použiť tajný správca ASPNET.

Zakaždým, keď sa otvorí konfigurácia, prepíše nastavenia všetkých konfiguračných hodnôt, ktoré má, čo znamená, že premenná bude odrážať to, čo bolo nastavené ako posledné.

Pozrite sa na stránku Dokumenty o konfigurácii.