2009-03-04 18 views
0

私はジョブと呼ばれるLINQ to SQLエンティティを持っています。これはSQLの単なるテーブルです。たいていの場合、私は必要なもののために働きますが、時には、このエンティティに人口を埋めるためにもっと多くのフィールドを必要とします。 LINQ生成クラスに新しいフィールドを追加するために部分クラスを使うことができますが、私はこの余分なデータをどのように埋め込むのですか?たとえば、私は、ジョブテーブルのすべての値と私が移入する必要がある余分なデータをプルバックするストアドプロシージャを持っています。私は、エンティティの読み込みルーチンにフックをかけたいと思います。このデータが存在するときは、データを入力します。私はシンプルなソリューションはビューを作成することですが、私はそのソリューションが気に入らないことを知っています。LINQ to SQL生成エンティティに「余分なデータ」を追加しますか?

LINQがデータを取得してエンティティにデータを入力している場所を特定できないようです。誰にもアイデアはありますか?

答えて

0

(野生の推測)SQLビューからエンティティを作成することができます。 SPのような結合などでDB内のビューを作成し、そのビューをLINQデザイナに追加すると、必要なすべてのギアを持つエンティティが作成されます。

OR

(良い)(オプションフィールドで)あなたの完全なエンティティを表すクラスを作成し、プロセス内の別のステップとして、(あなたが現在持っている)多くのentitesにマップします。この長いcozは、これを行うために抽象化の別のレイヤーを作成したいと思っています..それからさらにそれを取るためには、あなたの全体のエンティティセットなどを抽象化したいでしょう。よりクリーンなドメインモデル(必要な場合)

+0

ええ、それは余分なエンティティを追加するので、私は解決策1が嫌いです。 解決策2の問題は、データベースを2回クエリする必要があることです。これは、避けたいものです。 –

+0

2番目のオプションは2つのSQLクエリを必要としません。この例では、-same datacontext-内のLINQエンティティへのマッピングを作成します。 LINQは、単一のSQLクエリで適切な結合などを作成します。 –

関連する問題