以下に示すように、複数のテーブルで結合を使用するときに最初のレコードを取得するための最良の方法に関するアドバイスを探しています。
私は3つのテーブルを持っています:
- リード<-これは結果で一意である必要があります
- LeadAddresses(結合テーブル)
- 住所
通常、私は次のように参加します。
from t2
in db.Leads
.Where(o => t1.LeadId == o.Lead_ID)
from t4
in db.LeadAddresses
.Where(o => t2.Lead_ID == o.Lead_ID)
.DefaultIfEmpty()
from t5
in db.Addresses
.Where(o => t4.Address_ID == o.Address_ID)
.DefaultIfEmpty()
(これが悪い習慣である場合は、私に知らせてください;)
各リードレコードのAddressesテーブル(たとえば、最大IDを持つテーブル)からプロパティを取得し、モデルにプロジェクトを作成しようとしています。
select new LeadGridModel
{
...
});
例:
Lead Company | City | ZIP
==============================
Company 1 | Boston | 00000
Company 2 | Houston | 00001