0

我的项目中有一个 app.config 文件,如下所示。

我有以下代码来读取连接字符串:

string connectionstring = ConfigurationManager.ConnectionStrings["LibraryReservationSystemEntities"].ConnectionString;

它显示如下所列的异常。

你调用的对象是空的。

我们怎样才能纠正它?

注意:这是一个类库项目。我从另一个项目中复制了这个连接字符串,该项目有 EF 的 EMDX 文件。我目前的解决方案中只有一个项目。

注意:我需要从我的项目中实例化一个ObjectContext(EF)。EMDX 在不同的项目中可用。

<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
<connectionStrings>
    <add name="LibraryReservationSystemEntities" connectionString="metadata=res://*/MyEDMtest.csdl|res://*/MyEDMtest.ssdl|res://*/MyEDMtest.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;AttachDbFilename=C:\DevTEST\Databases\LibraryReservationSystem.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
 </configuration>

参考

  1. 如何以编程方式设置实体框架代码优先的连接字符串?

  2. 初始化实体框架上下文的最佳方法?

4

3 回答 3

1

您不能拥有库项目的配置文件。此配置文件与执行的程序集相关,可以是 Winform 应用程序、WPF 应用程序、控制台应用程序、IIS 中的 ASP.Net 网站...

在执行的实际程序集的 app.config(或 web.config)文件中添加您的ConnectionStrings部分。

于 2012-07-18T11:59:04.077 回答
0

检查这个

you need to add a .dll reference for configuration manager

recheck if your connection string is right

check if you have more than one configuration file ex. web.config and app.config; so the ConfigurationManager is referencing the wrong file in the solution.
于 2012-07-18T11:57:00.150 回答
0

如果 ConnectionStrings["myConnection"] 返回 null,则在构造函数中取消引用它以获取 Name 属性将失败。那绝对不是错误所在吗?

为什么不在该行放一个断点并查看 ConfigurationManager.ConnectionStrings 以检查它认为它有什么 - 并非常仔细地检查拼写错误。

之后,在方法的第一行下一个断点,检查connectionString的值是什么。将 null 传递给 SqlConnection 构造函数实际上不会引发异常,但是当您尝试打开它时会收到 InvalidOperationException。

于 2012-07-18T12:00:12.423 回答