无法从Config File读取连接字符串

时间:2012-07-18 11:50:07

标签: c# .net

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

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

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

显示如下所列的例外情况。

  

对象引用未设置为对象的实例。

我们如何纠正它?

注意:这是类库项目。我从另一个拥有EM的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. How do I programmatically set the connection string for Entity-Framework Code-First?

  2. Best way to initialize an entity framework context?

3 个答案:

答案 0 :(得分:1)

您无法拥有库项目的配置文件。此配置文件与已执行的程序集相关,可以是一个winform应用程序,WPF应用程序,控制台应用程序,IIS中的ASP.Net网站...

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

答案 1 :(得分: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.

答案 2 :(得分:0)

如果ConnectionStrings [“myConnection”]返回null,则取消引用它以获取Name属性将在构造函数中失败。这绝对不是bug的地方吗?

为什么不在该行上设置一个断点并查看ConfigurationManager.ConnectionStrings来检查它认为它有什么 - 并仔细检查拼写错误。

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