Я создаю функцию специального отчета для своего приложения.Я использовал PredicateBuilder для части «Где», но теперь, когда я пытаюсь использовать его также внутри части «Выбрать», у меня ничего не получается.
Пример кода:
IQueryable<User> usersQuery = db.Users.AsQueryable();
var where = PredicateBuilder.True<User>();
//sample for the users query
where = where.And(p => p.Enabled);
var selectOrders = PredicateBuilder.True<UserOrder>();
//sample for a query inside user orders
selectOrders = selectOrders.And(p => p.Amount > 10);
usersQuery = usersQuery.Where(where); //work
var query = (from a in usersQuery
select new
{
FirstName = a.FirstName,
TotalOrders = a.UserOrders.Where(selectOrders).Count() //could not compile
}).AsQueryable();
Я не думаю, что вы можете сделать
.Select("new (TotalOrders = UserOrders.Where(BetAmount > @0).Count()")
В DynamicLinq, но я не могу его использовать, потому что я вызываю некоторые пользовательские функции sql внутри «select», а DynamicLinq не поддерживает его.