私はしばらくこの問題に取り組んできましたが、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="Data Source=|DataDirectory|\Balance.sdf;Password=password;Persist Security Info=True"" 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に関連しているに違いないと思います。なぜこれが起こっているのか知っている人はいますか?
読んでくれてありがとう!