拥有IQueryable
var query = _db
.ApplicationPaidServices
.Include(it => it.Application)
.Include(it => it.Application.User)
.Where(it => Enum1.Value1 == it.Application.Enum1)
.Skip(0);
执行 1
var result1 = await (from it in query
select it)
.ToListAsync();
作品。
执行 2
var result2 = await (from it in query
select
new
{ it })
.ToListAsync();
使用消息抛出ArgumentNullException
:值不能为空。参数名称:arguments [2]
堆栈跟踪
System.Dynamic.Utils.ContractUtils.RequiresNotNull(对象值,字符串paramName,int index) System.Dynamic.Utils.ExpressionUtils.RequiresCanRead(表达式表达式,字符串paramName,int idx) System.Dynamic.Utils.ExpressionUtils.ValidateOneArgument(MethodBase方法,ExpressionType nodeKind,表达式参数,ParameterInfo pi,字符串methodParamName,字符串argumentParamName,int index) System.Dynamic.Utils.ExpressionUtils.ValidateArgumentTypes(MethodBase方法,ExpressionType nodeKind,ref ReadOnlyCollection参数,字符串methodParamName) System.Linq.Expressions.Expression.Call(表达式实例,MethodInfo方法,IEnumerable参数) Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.Internal.IncludeExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression) System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
在初始查询中评论Where
或Skip
可修复错误。
不知道是什么原因。
使用 Npgsql.EntityFrameworkCore.PostgreSQL
和.NET Core 1.1
答案 0 :(得分:0)
今天被这个咬了。一种可能的解决方法是在ToListAsync
之前等待Select()
:
var paged = await queryable
.OrderBy(m => m.Name)
.Skip(0).Take(30)
.ToListAsync();
var result = paged.Select(ViewModel.Map).ToList();