8

Linq-To-Entities クエリを含む多数のリポジトリを上部に持つデータレイヤーとして、Entity Framework を使用した階層化アーキテクチャを使用しています。データ レイヤーは 1 つのプロジェクトで、その隣にはサービス レイヤーと Web サイトであるインターフェイスがあります。

エンティティ モデルの接続文字列を Web サイトで指定する必要があります。どうすればいいですか?

シングルトン メソッドを使用して、データレイヤー内にあるエンティティ リポジトリにアクセスしています。

ありがとう

4

2 に答える 2

10

DAL アセンブリの App.Config で作成された接続文字列を、web.config の connectionStrings セクションにコピーできます。

アセンブリ dll に接続文字列を保持できますが、Web サイトには配置しないでください。

接続文字列全体をコピーする必要があります。次のようになります。

<add name="DataEntities" connectionString="metadata=res://*/DataModel.csdl|res://*/DataModel.ssdl|res://*/DataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=xxx;Initial Catalog=xxx;User Id=xxx;Password=xxx;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

マッピング ファイルが存在する場所に関するすべての情報が含まれている必要があります。

于 2009-05-13T19:20:38.567 に答える
3

私の場合、L2E の代わりに L2S を使用していますが、推奨事項は有効です。XML ファイルからフィードする一般化された Config ライブラリがあります。データ コンテキストが必要な場合、すべてのデータ オブジェクトには次のようなメソッドがあります。確かに、必要に応じて簡単にテンプレート化できます。

private static string _conStr = null;
private static CalendarsAndListsDataContext GetDataContext()
{
    if (_conStr == null)
    {
        _conStr = ConfigurationLibrary.Config.Settings().GetConnectionString("liveConString");
    }

    return new CalendarsAndListsDataContext(_conStr);
}

現在、最大の欠点は、接続文字列の変更にはアプリケーションの再起動が必要なことですが、私の場合、それは問題ではありません.

于 2009-05-13T19:02:46.473 に答える