执行以下查询的最佳方式是什么?
我有两个具有以下结构的表:
我想找到所有“无主”资产 - 这意味着没有AssetOwner记录,其中包含AssetID,以及将来没有EndDate或EndDate。
我已在此查询中首次传递:
return from a in db.Assets
where !db.AssetOwners.Any(o => o.AssetID == a.ID
&& (!o.EndDate.HasValue || o.EndDate > DateTime.Now))
select a;
但鉴于我缺乏这方面的经验,我想知道这是否是执行此查询的最佳方式(我甚至不知道选项是什么)。
干杯,
添
答案 0 :(得分:0)
到目前为止相当不错。尝试
return from a in db.Assets
where !(a.AssetOwners.Any(o => o.EndDate.HasValue || o.EndDate > DateTime.Now))
select a;