0

私はしばらくこの問題に取り組んできましたが、Web で解決策を見つけることができません。

3 つのプロジェクト (Presentation[Balance]、Data[Data]、BussinessLogic[Logica]) を持つソリューション (.NET 4 C# VS 2010) があります。アイデアは、Tier-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 was unhandled: 指定された名前付き接続が構成内に見つからないか、EntityClient プロバイダーでの使用を意図していないか、無効です。

これはコンストラクターで発生します。

ここに画像の説明を入力

私が試したのは、ADO .NET Entity Data Model を Balance プロジェクトに追加することで、完全に機能しました。だから私はそれが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 に答える