我有多个具有相同架构的 SQL 数据库。比如(Database1,Database2...)
如何在运行时动态选择 Entity Framework 模型中的数据库?。由于它们具有相同的架构,因此事先导入所有数据模型是没有意义的。
最佳答案
您可以像这样更改数据库连接字符串:
DataModelContainer context = new DataModelContainer(
ConnectionOperation.CreateEntityConnection());
这是CreateEntityConnection
方法:
internal static EntityConnection CreateEntityConnection()
{
// Start out by creating the SQL Server connection string
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
// Set the properties for the data source. The IP address network address
sqlBuilder.DataSource = System.Configuration.ConfigurationManager.AppSettings["Connection"];
// The name of the database on the server
sqlBuilder.UserID = "sa";
sqlBuilder.Password = "12345";
sqlBuilder.InitialCatalog = "DatabaseName";
sqlBuilder.IntegratedSecurity = true;
sqlBuilder.MultipleActiveResultSets = true;
// Now create the Entity Framework connection string
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
//Set the provider name.
entityBuilder.Provider = "System.Data.SqlClient";
// Set the provider-specific connection string.
entityBuilder.ProviderConnectionString = sqlBuilder.ToString();
// Set the Metadata location.
entityBuilder.Metadata = @"res://*/DataModel.csdl|res://*/DataModel.ssdl|res://*/DataModel.msl";
// Create and entity connection
EntityConnection conn = new EntityConnection(entityBuilder.ToString());
return conn;
}
关于c# - 在 Entity Framework 中动态选择数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16752371/