类型EntitySet<T>
的属性Models实现IEnumerable<T>
。在Enumerable.Any
中使用System.Linq
会生成一个查询,但是使用自定义扩展方法会引发异常。
// Generates a query.
var a = db.Manufacturers.Where(x => !x.Models.Any(y => y.Region == "US"));
// Throws an exception.
var b = db.Manufacturers.Where(x => x.Models.None(y => y.Region == "US"));
Linq to SQL如何使用Enumerable.Any
生成查询,并且我可以更改方法来执行同样的操作吗?
public static class EnumerableExtensions
{
public static bool None<TSource>(this IEnumerable<TSource> source)
{
return !Enumerable.Any(source);
}
public static bool None<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
{
return !Enumerable.Any(source, predicate);
}
}