如何在类库项目中配置entity framework

我已经创建了一个类库项目,其中包含entity framework对象,该对象将负责我的多个项目的公共数据访问层。在将生成的dll文件添加到我的域项目并使用类库项目中的实体对象之后,我面临着以下问题。

在应用程序配置文件中找不到名为“ABC”的连接字符串。

我已将edmx的Metadata Artifact处理属性设置为Embed in Output Assembly

App.Config标记

    

实体代码如下

 public ABC_IntegrationEntities() : base("name=ABC") { } 

我从datadirectiory“App_Data”访问数据库还有一件事

我正在引用dotnetcurry.com上的博客。

http://www.dotnetcurry.com/showarticle.aspx?ID=617

提前致谢!

根据您提供的链接,您可能会错过这一部分。

现在,您可以在此项目中创建自己的.config文件,并添加模型的connectionstring条目,或者只是在您的Console App项目中复制您在MyEntityModel项目中创建的App.config文件。 我们将采用更简单的方式。 右键单击项目> 添加现有项 >转到MyEntityModel项目并添加App.config文件。

说明:

当您创建库并从另一个项目引用库时,EF将读取与启动项目相关的配置。 您可以执行以下操作之一。

  • 从库的配置中复制配置(复制文件并粘贴到启动项目)
  • 创建新配置但复制连接字符串信息和其他EF相关部分
  • 通过添加现有项添加现有配置,并将其添加为库配置的链接

我一直致力于创建实现所有EF(entity framework)function的类库,并遵循http://www.dotnetcurry.com/showarticle.aspx?ID=617中概述的流程,但仍然出错。

问题是EF框架和.Net框架之间的版本不匹配。 我使用的是.Net framework 5.0,但EF版本是6.0。 更新.Net框架的最新版本后,一切都开始运作良好。 始终确保EF和Dll版本+ EF和测试项目版本始终相同。

我还下载并安装了EFTools6.1.3ForVS2013,如果这对任何人都有帮助的话。 要记住的其他事项是你必须在所有引用EF Dll的项目中从Nuget安装Entity Framework,并从测试项目的配置文件中的Dll配置文件中复制connectionstring。

希望这有助于某人! 谢谢,

从库项目的配置文件中复制SQL连接字符串并将其粘贴到主项目的配置文件中,这是您的启动项目。 哪个会解决您的问题。

另外,将DbProviderFactories从库项目复制到主项目的配置文件中。

在上下文类的构造函数中更改您正在使用的实体连接字符串的名称:

 public ABC_IntegrationEntities() : base("name=Gumu_IntegrationEntities") { } 

确保将应用程序配置文件添加到执行代码的程序app.config ,即您网站的web.config的PE的app.config