实体框架6连接字符串dll app config

时间:2015-07-29 16:27:43

标签: c# .net entity-framework dll

我有2个项目:控制台应用程序和类库(dll)

我的主要项目,控制台应用程序,引用我的dll。

在我的dll中,我创建了一个EF(实体框架)ADO模型。

EF连接字符串必须位于dll项目.config文件中。

问题是当我初始化DbContext时,它正在控制台应用程序.config文件中查找连接字符串。

如何告诉DbContext在dll .config文件中查找连接字符串?

由于

2 个答案:

答案 0 :(得分:2)

这就是配置文件的工作方式。正在运行的应用总是在{appname} .exe.config中查找。 DLL项目的配置文件就是为您提供必须复制到正在运行的应用程序配置文件的占位符。它不与DLL一起部署。

答案 1 :(得分:1)

您应该在控制台应用中指定连接字符串。这是一个快速示例,您可以这样做。

  • 想象一下,如果你有另一个应用程序在你的解决方案中使用你的DLL。如果要连接到另一个数据库实例怎么办?现在你必须改变你的DLL连接字符串?但这会打破你的第一个应用程序。
  • 您经常在不同的环境中运行不同的app应用实例(例如开发,登台,制作)。每个实例都需要连接到不同的数据库。您如何为每个实例重新配置DLL连接字符串?
  • 如果其他人使用您的DLL,您怎么知道他们想要指向哪个数据库?

对于你真正想要这样做的原因,还有很多争论。所有工具也围绕着它构建。

  • 我相信Visual Studio在编译使用这些DLL的应用程序的源代码时不会添加DLL配置文件。
  • 托管环境(例如Azure)允许您轻松更改web.config文件,但对DLL配置文件一无所知。