【问题标题】:Nhibernate - Unable to query IN operationNhibernate - 无法查询 IN 操作
【发布时间】:2015-06-24 05:03:58
【问题描述】:

这是我的要求

我有一个位置 ID 列表。我需要返回entity.Location.Id[list of Location Ids] 中的所有实体

使用的查询

var res = from m in queryable
                      from id in locations
                      where m.Location.Id == id
                      select m;

可查询是从NHibernate Repository 返回的IQueryable<Entity> 位置是IDs 的整数列表。

上述查询引发错误。

“不支持指定的方法。”

任何帮助表示赞赏。

System.RuntimeMethodHandle.InvokeMethod(对象目标,对象[] 参数,签名 sig,布尔构造函数)在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(对象 obj, Object[] 参数,Object[] 参数)在 System.Reflection.RuntimeMethodInfo.Invoke(对象 obj,BindingFlags invokeAttr、Binder binder、Object[] 参数、CultureInfo 文化) 在 System.Web.Http.OData.Query.InlineCountQueryOption.GetEntityCount(IQueryable 查询)在 System.Web.Http.OData.Query.ODataQueryOptions.ApplyTo(IQueryable 查询,ODataQuerySettings 查询设置)在 System.Web.Http.QueryableAttribute.ExecuteQuery(对象响应, HttpRequestMessage 请求,HttpActionDescriptor actionDescriptor) 在 System.Web.Http.QueryableAttribute.OnActionExecuted(HttpActionExecutedContext actionExecutedContext)在 System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutedAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancelToken) --- 结束 来自先前引发异常的位置的堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime。

【问题讨论】:

    标签: model-view-controller nhibernate odata repository-pattern


    【解决方案1】:

    做你想做的事情的正确方法是:

    var res = from m in queryable
              where locations.Contains(m.Location.Id)
              select m;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多