0

私はEntityFramework(現在EF5を使用しています)とvs2012を初めて使用し、何かを理解するのに苦労しています。

データベースから生成された.edmxがあります。2つのテーブルがあります:Item3rdPartyItem。つまり、Itemテーブルはすべての会社アイテムのメインテーブルであり、3rdPartyItemテーブルはアイテムの追加属性を保持するために使用されるテーブルです。これ3rdPartyItemテーブルは外部の会社によって作成され、会社のソフトウェアで使用されているので、どちらのテーブルもいじることはできません。私がやろうとしているのは、グリッド内のアイテムのリストを表示することですが、両方のテーブルのすべてのフィールドの組み合わせを表示する必要があります。vs2012では、関係を作成して「0対1」にすると(Itemテーブルの各レコードに対して、必ずしも3rdPartyItemテーブルに1つある必要はないため)、vsは正しくマップされていないことについて不平を言います。マッピングを設定すると、複数の関係があると文句を言います。調べてみたところ、2つの主キーとの関係が取れないことがわかったので、それが問題だと思っていました。しかし、コードで次のようにItemsと3rdPartyItemにアクセスできるように.edmxを変更するにはどうすればよいですか?

var items = dbContext.Items;
items.3rdPartyItem.SomeField <--field from 3rdPartyItem table.

それが可能かどうかはわかりませんが、可能であれば非常に役立ちます。何か案は?

4

1 に答える 1

0

あなたが探しているのは、型ごとのテーブル (TPT) マッピングの継承です。ここで MSDN ウォークスルーを表示できます (ただし、基本型をインスタンス化できるようにする必要があります)。

http://msdn.microsoft.com/en-us/data/jj618293.aspx

于 2013-03-26T22:42:27.410 に答える