2012-07-18 79 views
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. How do I programmatically set the connection string for Entity-Framework Code-First?

  2. Best way to initialize an entity framework context?

+0

你确定你使用了正确的配置文件吗? – 2012-07-18 11:51:59

+0

@flem是的。我的项目中只有一个配置文件。 – Lijo 2012-07-18 11:52:27

+0

什么类型的应用程序(winforms,控制台,类库等)是它?解决方案中是否只有一个项目? – 2012-07-18 11:53:09

回答

1

你不能有一个库项目一个配置文件。这个配置文件与执行的程序集有关,它可能是一个winform应用程序,WPF应用程序,控制台应用程序,IIS中的ASP.Net网站......

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

+0

这是我的回答...(5分钟前制作) – 2012-07-18 11:59:44

+0

@flem对不起,但当时我写了我的答案,你的不完整。您稍后编辑它。 – ken2k 2012-07-18 12:03:47

+0

当EF添加一个EMDX时,它会在其项目中添加一个配置文件。为什么这样?我需要从我的项目实例化一个ObjectContext。 EMDX可用于不同的项目。 – Lijo 2012-07-18 12:07:39

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. 
0

如果的ConnectionStrings [则“myConnection”]返回null,则取消引用它得到Name属性将在构造函数中失败。这绝对不是问题所在?

为什么不把一个断点在该行,并采取在ConfigurationManager.ConnectionStrings一看就检查它认为它有 - 并且非常仔细地检查是否有错别字。

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

+0

我没有使用任何数据库连接。我只是想读取配置值。这个阅读本身就是一个例外。 – Lijo 2012-07-18 12:02:13

相关问题