概念的に関連する 2 つのテーブルがありますが、元のコーダーはテーブル間に FK 関係を作成しませんでした。
表1:
TABLE [Name](
ID [varchar](10) NOT NULL (this is the PK),
MAIL_ADDRESS_NUM [int] NOT NULL,
BILL_ADDRESS_NUM [int] NOT NULL,
Shipping_Address_Num [int] Not Null
)
表 2:
TABLE [Address](
ID [varchar](10) NOT NULL,
ADDRESS_NUM [int] NOT NULL (this is the PK),
PURPOSE [varchar](20) NOT NULL
)
オプションがあれば、MailingAddress の FK を AddressNumber に、BillingAddress を AddressNumber に、ShippingAddress を AddressNum に設定します。しかし、それは選択肢ではありません。
現在、私のLINQでは次のようなことをしています:
from n in Names.Where(predicate)
join ba in db.Addresses on n.BillingAddressNumber equals ba.AddressNumber
join sa in db.Addresses on n.ShippingAddressNumber equals sa.AddressNumber
join ma in db.Addresses on n.MailingAddressNumber equals ma.AddressNumber
EF と linq を正しく理解していれば、Edmx デザイン サーフェス内/上でその関連付けを作成し、クエリを簡素化できるはずです。正しい?
その場合、Edmx ファイルに正しい関連付けを追加するには、どのような手順を実行する必要がありますか? 私はいくつかの参照を見つけましたが、基礎となる XML ファイルをかなり操作する必要があるようです。それは必要ですか?また、これらのテーブルは厳密に読み取り専用です。VS2012 と EF5 を使用しています。