Entity Framework 代码优先 Class 库

Entity Framework Code First Class Library

寻求解释和教育。

我为代码优先数据库创建了一个 class 库,并使用应用程序配置创建了一个连接字符串。

然后我将其添加到 MVC 项目中。

在 MVC 项目中引用 class 库数据库上下文我试图在其中一个 table 中创建一个简单的记录,但它产生了一个错误。

但是,当我将复制的连接字符串放入 MVC 项目的 web.config 时,记录就创建了。

我的问题是,当我使用 class 库中的数据库上下文时,为什么我需要 MVC 项目中的连接字符串,它有自己的连接字符串?在我看来,数据访问将通过 class 库。

我发现了一个类似的问题:Entity Framework 4.2 code first in a class library ignoring my connection string 这似乎意味着只要我在 class 库中有它就可以了。

如果您能就此提供任何见解,我们将不胜感激。另外,让我知道您需要查看哪些代码,我会提供。因为我不确定你最初需要看什么。

提前致谢。

这是设计使然。所有配置都是从作为主机的应用程序的配置文件中读取的。这是因为您可能在其他项目中使用相同的 class 库,并且在您的情况下,可能连接到不同的数据库。

请查看此文档 Application Configuration Files :

The name and location of the application configuration file depend on the application's host

现在,一个包含所有 nuget 包和 class 库的 Web 项目有很多 dll。如果每个人都有自己的配置文件,那将无法维护。我觉得这样比较好。