Pierwsze podejście pozwala na stworzenie własnego pełny ciąg połączenia w czasie wykonywania, a nie ciąg połączenia wymienionych w swojej app.config lub pliku web.config.
Podejście 2 wykorzystuje nazwany ciąg połączenia w plikach konfiguracyjnych.
Stosując podejście 1, a częściowej klasy, który obsługuje budowanie ciąg połączenia, można zbudować ciąg połączenia w czasie wykonywania takich jak:
Konstruktor DbContext akceptuje ciąg połączenia jako parametr. Możesz być lepiej buduje ciąg połączenia i przechodzącej które do konstruktora tak:
użyłem mniej więcej tak:
// the model name in the app.config connection string (any model name - Model1?)
private static string GetConnectionString(string model, settings)
{
// Build the provider connection string with configurable settings
var providerSB = new SqlConnectionStringBuilder
{
InitialCatalog = settings.InitialCatalog,
DataSource = settings.DataSource,
UserID = settings.User,
Password = settings.Password
};
var efConnection = new EntityConnectionStringBuilder();
// or the config file based connection without provider connection string
// var efConnection = new EntityConnectionStringBuilder(@"metadata=res://*/model1.csdl|res://*/model1.ssdl|res://*/model1.msl;provider=System.Data.SqlClient;");
efConnection.Provider = "System.Data.SqlClient";
efConnection.ProviderConnectionString = providerSB.ConnectionString;
// based on whether you choose to supply the app.config connection string to the constructor
efConnection.Metadata = string.Format("res://*/Model.{0}.csdl|res://*/Model.{0}.ssdl|res://*/Model.{0}.msl", model); ;
return efConnection.ToString();
}
Dziękuję za odpowiedź, to wskazano dokładnej oświadczenie brakowało mi w tym artykule. – Jonathon
"Zobacz uwagi klasowe", "jeśli przejdziesz do uwag klasowych ..." <- zlokalizowanie tego nie jest oczywiste. Jak ich znalazłeś? – redwards510
@ redwards510 Używam Resharpera dotpeek do dekompilacji źródeł. można go zainstalować za darmo. To był darmowy program. Ale są też inne narzędzia, takie jak .net reflector –