.net - 等待!哪个配置文件? ( Entity Framework 连接字符串)

标签 .net entity-framework connection-string entity-framework-4.1

所以,我在一个单独的类库中创建了我的实体模型。我必须将连接字符串添加到 app.config该类库的文件。然后我在我的 Web 应用程序中为该项目添加了一个 ref。我在 web.config 中添加了相同的连接字符串我的 Web 应用程序认为这是 Entity Framework 将从中读取连接字符串的地方。

一切都很好,直到我部署了我的网络应用程序。部署时,我更改了 web.config 中的连接字符串(不是类库的app.config),我开始遇到错误。经过一番研究,我发现 web.config 中的连接字符串和 app.config必须匹配!!

这简直是​​愚蠢!每次我需要将我的 Web 应用程序部署到不同的环境时,我都必须返回并修改 app.config 中的连接字符串。文件,然后重新编译我的类库项目,以便它可以获得刷新的连接字符串?

有没有人找到更好的方法来做到这一点?我的意思是,我不能是唯一一个想到将实体模型放在单独的组件中的人。

可能的解决方案(如果您使用的是 EF 4.1):
因为我们需要在类库项目中包含 app.config 的唯一原因是为了 EF 设计器。如果我们放弃设计器方法并使用 Code-First (EF 4.1),您将不需要为您的类库项目创建 app.config 文件。

最佳答案

我们遇到了同样的情况。我已经要求每个开发人员只在选择第一个连接字符串的情况下编译 EF 程序集。

这样,在部署时,web.config 中只需要一个连接字符串。

最终,如果每台开发机器和部署服务器在第一个(并且希望只有)连接字符串(即不是 ConnectionString4)中都有正确的连接信息(对于该机器),那么生活很容易。

基本上,当默认连接字符串(最新选择的)无法连接时,设计人员会将额外的连接字符串添加到开发连接字符串中。

此外,没有理由对将数据层放入单独的程序集中感到难过。有时这是更可取的。

最后,确保包含连接字符串的配置文件没有与源代码控制 Hook 非常重要——连接字符串通常是本地化的,如果出现这种情况,将导致 EF 和 LINQ to SQL 中的“多连接字符串问题”每次从源代码管理更新项目时,它都会被错误的值覆盖。

关于.net - 等待!哪个配置文件? ( Entity Framework 连接字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6223223/

相关文章:

c# - 如何在 ASP.NET 中动态创建新的超链接?

c# - 如何使用 Entity Framework 设置连接字符串

vb.net - 连接到 Advantage ADT 文件时出现整理错误 5175

.net - Paypal Sandbox 交易未显示在测试帐户 .NET SDK 中

c# - `async void`(没有等待)与 `void` 之间有什么区别

.net - 在 Entity Framework 5 中将代码生成从无更改为默认值后出现错误

c# - 将 Entity Framework Linq 查询打印为字符串

javascript - 数组连接与字符串连接

c# - EF 5.0 和动态连接字符串?

c# - IsAssembly/IsFamily 和 IsFamilyOrAssembly 之间的关系