次のクエリを実行するための最適な方法は何ですか?
次の構造の2つのテーブルがあります。
すべての「所有されていない」アセットを検索したいのですが、これは、AssetIDを持ち、EndDateまたはEndDateを将来持つAssetOwnerレコードがないことを意味します。
私はこのクエリで最初のパスを作成しました:
return from a in db.Assets
where !db.AssetOwners.Any(o => o.AssetID == a.ID
&& (!o.EndDate.HasValue || o.EndDate > DateTime.Now))
select a;
しかし、これについての経験が不足しているので、これがこのクエリを実行するための最適な方法であるかどうかを知りたいです(オプションが何であるかさえわかりません)。
乾杯、
ティム。