NHibernate 3.2 で linq に左結合を実装することは可能ですか?
このSQLクエリに似たlinqクエリを実現したい:
select v.*, cp.EffectiveStart
from Visits v
join VisitServices vs on v.Id = vs.VisitId
left join CarePlans cp on cp.Id = vs.CarePlanId
私はそのようなlinqクエリを書きました:
var c = (from v in EntitiesRepository
join vs in _visitServiceRepository on v.Id equals vs.Visit.Id
join cp in _carePlanRepository on vs.CarePlan.Id equals cp.Id into pp
from pl in pp.DefaultIfEmpty()
select new { Visit = v, EffectiveStart = pl.EffectiveStart}).ToList();
しかし、私はこの例外を得ました
メソッドまたは操作が実装されていません。
回答: ナビゲーション プロパティを使用して問題を解決できました。
var c = (from v in EntitiesRepository
join vs in _visitServiceRepository on v.Id equals vs.Visit.Id
select new { Visit = v, EffectiveStart = vs.CarePlan == null ? null : (DateTime?)vs.CarePlan.EffectiveStart}).ToList();