如何在类库项目中配置实体框架

Nik*_*k's 11 c# asp.net-mvc service wcf entity-framework

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

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

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

App.Config标记

  <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="ABC" connectionString="metadata=res://*/Entity.ABC.csdl|res://*/Entity.ABC.ssdl|res://*/Entity.ABC.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\ABC.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>
</configuration>
Run Code Online (Sandbox Code Playgroud)

实体代码如下

public ABC_IntegrationEntities()
            : base("name=ABC")
        {
        }
Run Code Online (Sandbox Code Playgroud)

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

我引用了dotnetcurry.com上的博客.

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

提前致谢!

Yul*_*dra 7

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

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

说明:

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

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