我从使用 EF 的 MVC3 应用程序开始。我们有一个包含 > 200 个表的数据库。我正在使用 DBFirst 方法。
我的想法是为应用程序中的不同区域创建一个 EFModel,而不是将整个数据库架构放入一个大模型中。我现在遇到了一个问题,每个模型似乎都想要一个自己的连接字符串。我还没有成功地更改为只有一个通用的连接字符串。那不应该吗?我在想它在后台是同一个数据库所以......
还是我完全离开了这里?我应该将所有表格拖到一个大模型中吗?还是接受我将获得大量连接字符串这一事实?
有什么见解吗?
最佳答案
您不能为多个 EDMX 模型使用一个 EF 连接字符串,因为 EDMX metadata is part of the EF connection string .
这对您来说应该不是问题,除了所有这些连接字符串都包含一个嵌入式数据库连接字符串,您可能想在一个地方而不是 5 个地方更改它。您可以 ,但是,在运行时使用 EntityConnectionStringBuilder 更新数据库连接字符串部分.因此,您可以为数据库连接使用“常规”(非 EF)连接字符串,然后在创建上下文时使用 EntityConnectionStringBuilder 将其替换为 EF 连接字符串。
在我的脑海中,代码看起来像这样:
var dbCS = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;
var model1CS = ConfigurationManager.ConnectionStrings["Model1ConnectionString"].ConnectionString;
var ecsb = new EntityConnectionStringBuilder(model1CS);
ecsb.ProviderConnectionString = dbCS;
return new Model1Entities(ecsb.ToString());
关于database - 不同 Entity Framework 模型的相同连接字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9719056/