0

我一直在为这个问题苦苦挣扎,在网上找不到任何解决方案。

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

在此处输入图像描述

我的数据库是名为 Balance.sdf 的 SQL Compact Edition 3.5。然后,在我的 Data 项目中,我创建了一个 ADO .NET Entity Data Model,以便使用 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 提供程序一起使用,或者无效。

这发生在构造函数中:

在此处输入图像描述

我尝试的是在 Balance 项目中添加 ADO .NET 实体数据模型,它运行良好。所以我想它一定与App.Config有关。有人知道为什么会发生这种情况吗?

谢谢阅读!

4

1 回答 1

1

将相同的连接字符串添加到您的Balance项目,因此这也应该在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>
于 2013-08-04T18:23:14.883 回答