尝试从数据库获取实体列表时出现InvalidTaskException

本文关键字:InvalidTaskException 列表 实体 数据库 获取 | 更新日期: 2023-09-27 18:25:15

我正试图使用实体框架7从我的MS Server数据库中获取一个实体列表,其中实体有一个嵌套对象,该对象也有一个我用条件检查的嵌套对象。我的代码如下:

List<MyObj> MyObjList = DbContext.MyObj.Include(x => x.MyNestedObj).ThenInclude(x => x.MyNestedNestedObj).Where(x=>x.MyNestedObj.MyNestedNestedObj.ID==SomeValue).ToList();

当我尝试这个时,我得到:

InvalidTaskException无法从强制转换System.Linq.Expressions.FieldExpression到System.Linq.Expressions.ParameterExpression

我在我的项目中做过几次这种事情,我只有一个嵌套对象的级别,在那里它工作得很好。当我第一次把它们都拿出来,然后用这样的条件排序时,它也起作用:

List<MyObj> MyObjList = DbContext.MyObj.Include(x => x.MyNestedObj).ThenInclude(x => x.MyNestedNestedObj).toList();
List<MyObj> MyObjList2=MyObjList. Where(x=>x.MyNestedObj.MyNestedNestedObj.ID==SomeValue).ToList();

但我不想每次都得到整张桌子,我想像其他地方一样一步到位。

尝试从数据库获取实体列表时出现InvalidTaskException

我想你应该替换你的WhereInclude方法,试着这样做:

List<MyObj> MyObjList = DbContext.MyObj
    .Where(x => x.MyNestedObj.MyNestedNestedObj.ID == SomeValue)
    .Include(x => x.MyNestedObj)
    .ThenInclude(x => x.MyNestedNestedObj)
    .ToList();
相关文章:
  • 没有找到相关文章