Я определил спецификацию как объект типа 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?