現在、ASP.NET MVC プロジェクトを含むいくつかのサブプロジェクトを含む .NET ソリューションを開発中です。私のモデルは、ソリューション内の他のさまざまなプロジェクトから使用する必要があるため、別のアセンブリに分割されています。
私のモデルは、ADO.NET Entity Framework エンティティ モデルで構成されています。次のコードを使用して、モデルにシングルトン パターンを使用することにしました (SalsaEntities はエンティティ モデルの名前です)。
partial class SalsaEntities
{
private static SalsaEntities _instance = new SalsaEntities();
/// <summary>
/// Singleton instance of SalsaEntities.
/// </summary>
public static SalsaEntities Instance
{
get
{
return _instance;
}
}
}
次に、他のアセンブリから SalsaEntities.Instance を使用します。これは、私が持っている 3 番目のプロジェクトである Windows サービスではうまく機能しますが、そのプロジェクトの App.Config ファイルに接続文字列を含める必要がありました。
ただし、ASP.NET MVC プロジェクトから SalsaEntities.Instance を使用しようとすると、例外が発生します。プロジェクトのルートとViewsディレクトリの両方にあるWeb.configファイルに以下を含めても...
<connectionStrings>
<add name="SalsaEntities" connectionString="metadata=res://*/SalsaModel.csdl|res://*/SalsaModel.ssdl|res://*/SalsaModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=DbSalsa;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
...まだ次の例外がスローされています。
指定された名前付き接続が構成内に見つからないか、EntityClient プロバイダーでの使用が意図されていないか、無効です。
アセンブリにはすべて異なる名前空間がありますが、Windows サービスは問題なくアクセスするので、それは問題ではないと思います。
ヘルプ?
ありがとう、デビッド
PS: 私が気付いたもう 1 つの癖は、Visual Studio に新しい厳密に型指定されたビューを作成するように指示すると、モデル アセンブリに関するファイルが見つからないというエラーが生成されることです。このエラーが解決策なしで Web 上で数回議論されているのを見たことがあります。