小编saj*_*ith的帖子

Web API验证不会通过自定义模型绑定程序触发

我正在使用Web API 5构建Web Service。我正在通过扩展IModelBinder接口来实现将自定义模型绑定程序映射为操作的复杂类型。绑定部分工作正常。但是不会发生模型验证。ModelState.IsValid始终为true。

public class PagingParamsVM
{
        [Range(1, Int32.MaxValue, ErrorMessage = "Page must be at least 1")]
        public int? Page { get; set; }

        [Range(1, Int32.MaxValue, ErrorMessage = "Page size must be at least 1")]
        public int? PageSize { get; set; }
}

public class PaginationModelBinder : IModelBinder
{
        public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
        {
              var model = (PagingParamsVM)bindingContext.Model ?? new PagingParamsVM();
              //model population logic
              .....

              bindingContext.Model = model;
              return true;
        }
}

public IEnumerable<NewsItemVM> Get([ModelBinder(typeof(PaginationModelBinder))]PagingParamsVM pegination)
{ …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-web-api asp.net-web-api2

5
推荐指数
1
解决办法
1172
查看次数

EF Core 在查询中使用 Let 抛出“参数类型不匹配”异常

我正在使用 EF Core 2.0.1。我正在尝试获取最后一个订单数据以及用户信息来填充 UserDto,如下所示,

(from u in DbContext.User.Where(u => u.UserId == userId)
let last = u.Orders.LastOrDefault()
select new UserDto
{
    Id = u.Id,
    Name = u.Name,
    LastOrderId = (last == null ? null : last.Id),
    LastOrderDate = (last == null ? null : last.Date)
}
Run Code Online (Sandbox Code Playgroud)

这会引发以下异常。我怎样才能解决这个问题?

at System.Linq.Expressions.Expression.Condition(Expression test, Expression ifTrue, Expression ifFalse, Type type)
at System.Linq.Expressions.ConditionalExpression.Update(Expression test, Expression ifTrue, Expression ifFalse)
at System.Linq.Expressions.ExpressionVisitor.VisitConditional(ConditionalExpression node)
at System.Linq.Expressions.ConditionalExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.RelationalProjectionExpressionVisitor.Visit(Expression expression)
at System.Linq.Expressions.ExpressionVisitor.VisitMemberAssignment(MemberAssignment node)
at System.Linq.Expressions.ExpressionVisitor.VisitMemberBinding(MemberBinding …
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework entity-framework-core

5
推荐指数
1
解决办法
3126
查看次数