CreateQuery(Expression):
Создает объект IQueryable, который может оценить запрос
, представленный указанным деревом выражений.
Как создается -in EnumerableQuery проверяет, может ли он оценить запрос:
Код: Выделить всё
IQueryable IQueryProvider.CreateQuery(Expression expression) {
ArgumentNullException.ThrowIfNull(expression);
if (!typeof(IQueryable).IsAssignableFrom(expression.Type)) {
throw Error.ArgumentNotValid(nameof(expression));
}
return new EnumerableQuery(expression);
}
Код: Выделить всё
public virtual IQueryable CreateQuery(Expression expression)
=> new EntityQueryable(this, expression);
...
public EntityQueryable(IAsyncQueryProvider queryProvider, Expression expression) {
_queryProvider = queryProvider;
Expression = expression;
}
Я знаю, что было бы немного непрактично и медленно посещать дерево и проверим, сможем ли мы использовать его для успешного вызова Execute() позже.
Если это не то, что означает «можно оценить», означает ли это что-то конкретное или это должно быть полностью игнорируется?
Подробнее здесь: https://stackoverflow.com/questions/788 ... ure-that-i