0

执行以下查询的最佳方式是什么?

我有两个具有以下结构的表:

数据库表

我想找到所有“无主”资产——这意味着没有 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;

但鉴于我缺乏这方面的经验,我想知道这是否是执行此查询的最佳方式(我什至不知道选项是什么)。

干杯,

蒂姆。

4

1 回答 1

0

到目前为止还不错。尝试

return from a in db.Assets
       where !(a.AssetOwners.Any(o => o.EndDate.HasValue || o.EndDate > DateTime.Now))
       select a;
于 2012-12-05T11:15:07.693 回答