0

プロジェクトに2つのSqlServerCeSP2データベースがありますDataAccess

この説明のために、一方のデータベースがCompany.sdfで、もう一方のデータベースがPrivate.sdfであるとします。両方のデータベースの構造はまったく同じです。同じテーブル、同じ列IDなどです。

Company.sdfデータベースには、ネットワーク接続が利用できない場合にエンジニアと営業担当者が情報にアクセスできるように、当社のサーバーからダウンロードされたすべての製品に関する最新情報が含まれています。

Private.sdfデータベースには、システムを構築したりコストを見積もったりするためにエンジニアや営業担当者が作成したプロジェクトやシナリオが含まれています

まず、 CompanyModelというCompany.sdfデータベースのエンティティモデルを作成しました。いくつかの問題が発生した後、ようやくエンティティモデルを接続できるようになりました(Entity Framework Noobie)。

今日、私はPrivateModelと呼ばれるPrivate.sdfデータベース用の2番目のエンティティモデルを作成ました。これを行うとすぐに、プロジェクトの各メンバーに他のデータベースの同様のアイテムの定義がすでに含まれていることを示す複数のエラーが発生しました。DataAccess

ラット!

同様のデータベースにエンティティモデルを追加するにはどうすればよいですか?

このDataAccessプロジェクトは、私のn層アプローチのDALになります。ここで答えを探している間、3013146のRPM1984の応答を読んでモデルが接続先のデータベースについて何も知らないようにする必要があります。これはDALリポジトリの仕事ですが、自分の状況に最適な方法がわかりません。

4

3 に答える 3

2

同じ構造の場合、2つのモデルを作成する必要はありません。作成できるモデルは1つだけで、さまざまなインスタンスを使用して、さまざまな接続文字列を使用してさまざまなデータベースに接続できます。

コンテキストはコンストラクターのパラメーターとして接続文字列を取ることができ、そこで2つの異なる接続文字列を指定できます。

MyModelという1つのモデルを作成するだけです。

MyModelEntities companyContext = 
    new MyModelEntities("company connection string");

MyModelEntities privateContext = 
    new MyModelEntities("private connection string");
于 2011-05-25T17:25:23.973 に答える
1

リポジトリパターンを実装する必要があります。非常に簡単な例へのリンクをいくつか示します。

http://blogs.microsoft.co.il/blogs/gilf/archive/2010/01/20/using-repository-pattern-with-entity-framework.aspx

http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx

于 2011-05-25T16:47:41.107 に答える
0

私が探している実際の答えは、EdmGen2を呼び出すことによってのみ解決されるようです。さらにみんなを更新します。

誰かが実際にこれを行う方法を知っている場合は、コメントするか、回答を追加してください。

その間、私はチュートリアルモードで立ち往生しています。

アップデート:

私はCodeProjectに関するSteveQ56からいくつかの良い参考文献を指摘されました:

これらは、EdmGen2に頼ることなく行きたい方向に私を向けているようです。

于 2011-05-25T20:33:28.210 に答える