我已将规范定义为如下类型的对象Expression<Func<User, bool>>
:
public static Expression<Func<User, bool>> IsSystemUser
{
get
{
return user => user.UserID == -1;
}
}
这对于用扩展方法语法编写的查询非常有效:
return workspace.GetDataSource<User>().Where(UserSpecifications.IsSystemUser);
但不是使用 Linq 查询语法:
return from user in workspace.GetDataSource<User>() where UserSpecifications.IsSystemUser select user;
编译器给了我cannot implicitly convert type 'Expression<Func<User, bool>>' to 'bool'
.
是什么赋予了?我认为 Linq 查询语法只是一个可爱的 DSL 修饰扩展方法语法。谁能告诉我如何将我可爱的规范与 Linq 查询语法一起使用?