我需要一种方法来检查我Queryable
是否有任何谓词Where
。
var queryA = db.Contacts.Where(x => x.IsAdministrator);
var hasPredicate = HasPredicate(queryA);
// return true
var queryB = db.Contacts;
var hasPredicateB = HasPredicate(queryB);
// return false
我知道这不是最好的方法,显然你们都同意。
我将快速而肤浅地解释一下:
我有一个返回查询的方法,该查询将调用我在另一个上下文中用作主要研究的 QueryBase。
在当前上下文中,我需要 QueryBase ID 列表来进行连接。
不管怎样,我们开始吧,这些研究中使用的对象非常庞大和复杂,所以不想“重做”QueryBase。当这个巨大的对象没有标准时,查询是“原始的”。
我知道,我应该验证对象是否为空,但这确实有效,因为有几个不同的默认值,它们根据其他值而有所不同,并且所有这些验证都发生在返回 QueryBase 的方法中。
如果查询是“空的”,我只需要跳过这个。