尝试从另一个项目使用实体数据模型时出现异常

时间:2013-08-04 18:13:02

标签: c# sql-server entity-framework-4 3-tier

我一直在努力解决这个问题,我无法在网上找到任何解决方案。

我有一个解决方案(.NET 4 C#VS 2010),有三个项目(Presentation [Balance],Data [Data],BussinessLogic [Logica])。我们的想法是使用第3层架构。

enter image description here

我的数据库是名为Balance.sdf的SQL Compact Edition 3.5。然后,在我的Data项目中,我创建了一个ADO .NET实体数据模型,以便使用Entity Framework与数据库进行映射。

映射已正确完成,连接字符串在Data App.Config中添加正确:

<connectionStrings>
<add name="BalanceEntities" connectionString="metadata=res://*/DatabaseModel.csdl|res://*/DatabaseModel.ssdl|res://*/DatabaseModel.msl;provider=System.Data.SqlServerCe.3.5;provider connection string=&quot;Data Source=|DataDirectory|\Balance.sdf;Password=password;Persist Security Info=True&quot;" providerName="System.Data.EntityClient" />  
</connectionStrings>

然后,Balance(Presentation [WPF])引用Data来使用实体,Logica来引用这些方法。

问题是,当我调用涉及使用DatabaseModel.edmx实例的Logica类中的任何静态方法时,我得到以下异常:

  

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

这发生在构造函数中:

enter image description here

我尝试过的是在Balance项目中添加ADO .NET实体数据模型,它运行得很好。所以我想它必须是与App.Config相关的东西。有谁知道为什么会发生这种情况?

感谢阅读!

1 个答案:

答案 0 :(得分:1)

余额项目中添加相同的连接字符串,因此这也应该在 App.Config

<connectionStrings>
<add name="BalanceEntities" connectionString="metadata=res://*/DatabaseModel.csdl|res://*/DatabaseModel.ssdl|res://*/DatabaseModel.msl;provider=System.Data.SqlServerCe.3.5;provider connection string=&quot;Data Source=|DataDirectory|\Balance.sdf;Password=password;Persist Security Info=True&quot;" providerName="System.Data.EntityClient" />  
</connectionStrings>