EF存储库类库的C#ConnectionString

时间:2011-11-03 16:20:29

标签: c# entity-framework

我有一个数据库和一个C#类库,它充当使用Entity Framework从数据库访问对象的存储库。当试图在其他项目中使用此存储库程序集时,我遇到了困难;我的工作假设是这是由于连接字符串,因为我收到以下错误:

  

在配置中找不到指定的命名连接,不打算与EntityClient提供程序一起使用,或者无效。

我已将App1.config文件添加到项目中,并添加了我在创建数据库时成功使用的相同连接字符串:

<add name="EDSEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SQLite;provider connection string='data source=&quot;C:\Documents and Settings\hmay\My Documents\My Projects\Timetabler\DataSets\EDS.db&quot;;foreign keys=true'" providerName="System.Data.EntityClient" />

....但它不起作用。我不太了解连接字符串,并想知道这里是否有其他东西我可能需要调整?

此致

2 个答案:

答案 0 :(得分:3)

添加app1.config不会做任何事情。 App.config和web.config是特别命名的文件,它们需要完全命名。但是,如果您在多个应用程序中使用您的库,我会重构它。

将DbContext类更改为具有单个构造函数,该构造函数接受连接字符串并将创建连接字符串的责任推送到应用程序而不是库中。拥有一个类库,希望你的应用程序在其配置的连接字符串部分中有一个特定的命名条目,这是不好的。

答案 1 :(得分:0)

尝试修剪对metadata=res://*

的元数据引用