实体框架 4.1 - 选择

2024-01-25

我使用以下表达式:

ProductRepository.Query.Include(Function(x) x.ChildProducts.Select(Function(y) y.PriceTiers.Where(Function(z) z.IsActive))).Where(Function(x) x.Categories.Any(Function(y) y.ID = ID))

并收到此错误:

The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties.

如果我删除这个:

.Where(Function(z) z.IsActive)

它工作正常,但我需要过滤不活跃的价格层。

有任何想法吗?

Update

这是我的解决方案:

Public Function GetProductsByCategoryID(ID As Integer) As System.Collections.Generic.IEnumerable(Of Core.Entities.Product) Implements Core.Interfaces.IProductService.GetProductsByCategoryID
        Dim Col = ProductRepository.Query.Where(Function(x) x.Display AndAlso x.Categories.Any(Function(y) y.ID = ID)) _
                  .Select(Function(x) New With { _
                              .Product = x,
                              .ChildProducts = x.ChildProducts.Where(Function(y) y.Display).Select(Function(y) New With { _
                                                                                                       .ChildProduct = y,
                                                                                                       .PriceTiers = y.PriceTiers.Where(Function(z) z.IsActive)
                                                                                                   })
                          }).ToList.Select(Function(x) x.Product)

        Return Col

    End Function

如果没有投影或单独的查询来加载导航属性,则无法在单个查询中执行此操作。 Lambda 表达式为Include仅接受点分符号作为参考,Select对于集合,但您不能进行任何过滤。

使用 DbContext API 时,可以在单独的查询中进行过滤:

var data = context.Entry(product)
                  .Collection(p => p.ChildProducts)
                  .Query()
                  // Here are your filters
                  .Load();

Edit:

投影需要类似:

var data = context.Products
                  .Where(...)
                  .Select(p => new 
                      {
                          Product = p,
                          ChildProducts = p.ChildProducts.Where(...)
                      });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架 4.1 - 选择 的相关文章

随机推荐

  • 检查资源中是否存在 ID (R.id.something)

    因此 我有代码使用 AtomicInteger 为多个元素生成 ID 该 AtomicInteger 默认设置为 Integer MAX VALUE 并且随着分配 ID 的每个视图从那里递减 所以第一个带有生成 ID 的视图将是Intege
  • “django 视图中出现未知列‘user_id’错误

    我遇到一个错误 我不确定是什么原因造成的 这是错误 Exception Type OperationalError Exception Value 1054 Unknown column user id in field list 有谁知道
  • Spring Data Mongo @Column 等效注释(@Property?)

    是否有与 JPA Column 注释等效的 SpringData Mongo 基本上 我有一个 POJO 其中有一个属性 我想用不同的名称将其存储在 Mongo 中 因此 以下对象 public class Pojo Property ba
  • 使用 imagemagick montage 命令将平铺图像粘合在一起,无需调整大小

    这似乎是一个相当常见的问题 所以我将使用我能想到的尽可能多的关键字来问它 我有一堆 嗯 九个 平铺 jpeg 带有标准平铺文件名 每个 jpeg 均为 220x175 像素 top row tile 1 0 0 jpg tile 1 1 0
  • 显示吸气剂

    我正在研究getters setters 一般的想法是它们是邪恶的 应该避免 您应该让对象完成工作并产生结果 阅读材料 为什么 getter 和 setter 方法是邪恶的 https www javaworld com article 2
  • ASP.NET,如何管理不同类型角色的用户

    我想创建一个包含不同用户的网站 用户可以有不同的角色 管理员和用户 这是一个有据可查的情况 但我还想根据用户的位置对用户进行分组 因此在每个位置我都可以拥有管理员和用户 多维角色系统 原因是 德国用户应该有权访问一组特定的文档 而意大利用户
  • 访问数组内的对象

    I m trying to access values inside Firebase array gt object 当我尝试访问 v for 内部的值时 它运行良好 但我不能这样做 postDetail author 它返回未定义 解决
  • 无法阻止 Visual Studio 2015 在 JS 文件中滞后数秒,提示“JavaScript 语言服务正在后台处理您的请求...”?

    在状态栏中 当我输入 Js 文件时 它会在键盘上显示此消息 并且编辑器挂起 2 或 3 秒 这大概当我将一些 Js 文件移动到类别文件夹中时突然开始发生但我不确定这是原因 我不知道是什么问题 在出现问题之前 所有 js 文件都位于同一文件夹
  • 如何访问 jquery ajax 调用返回的数据? $.ajax(...) 之外;

    我如何访问 jquery ajax 调用返回的数据 在 ajax 之外 Reloads the inital page function jobexist jobname var dataString jobname jobname var
  • Android O Gradle 构建因 travis ci 失败

    我正在尝试将 Travis CI 用于我的 Android 项目 但我的构建不断失败 但可以在本地构建上运行 我正在使用 Android Studio Preview 3 和 gradle 3 alpha 3 我在下面收到此错误 找不到 c
  • 如何删除正在执行的jar文件

    我创建了一个应用程序 在该应用程序中 它根据操作修改 jar 内的属性文件 我可以使用更新的更改创建一个新的临时 jar 但无法将 jar 文件重命名为现有的 jar 文件名 由于它正在运行 我无法删除和重命名它 任何人都可以提出任何操作或
  • data.table 中的条件连接?

    我有以下数据表 dtgrouped2 MonthNo Unique Total 1 1 AAA 10 2 1 BBB 0 3 2 CCC 3 4 2 DDD 0 5 3 AAA 0 6 3 BBB 35 7 4 CCC 15 8 4 AAA
  • Spark Select 与 Scala 列列表

    我正在尝试找到一种使用 List Column 进行火花选择的好方法 我正在爆炸一列 而不是通过爆炸列传回我感兴趣的所有列 var columns getColumns x Returns a List Column tempDf sele
  • 如何在 Seaborn 热图旁边添加列

    鉴于下面的代码会生成热图 我如何获得 D 列 总列 要在热图右侧显示为无颜色的列 只需对齐每个单元格的总值 我还试图将标签移到顶部 我不介意左侧的标签是水平的 因为我的实际数据不会出现这种情况 import matplotlib pyplo
  • len() 是 python 中的函数还是方法?

    在面向对象编程的上下文中 函数不同于方法 当我检查帮助文档时 这段代码 len outputs Signature len obj Docstring Return the number of items in a container Ty
  • 如何将 .gif 转换为 byte[][]?

    我正在使用一个有方法的 API public void setImage byte newImage API 参考中给出的唯一信息是 该图像的格式是简单的原始2D array字节数 每个字节代表灰度black 0 to white 255
  • 在 Windows 上的 Cmake 中链接不同的库以进行调试和发布构建?

    因此 我有一个正在编译的库 我需要链接不同的第三方内容 具体取决于它是调试还是发布版本 特别是这些库的发布或调试版本 在 Cmake 中有一个简单的方法可以做到这一点吗 编辑 我应该注意我正在使用 Visual Studio 根据CMake
  • Debian httpredir 镜像系统在 Docker 中不可靠/不可用?

    简洁版本 Debian 的httpredir debian org镜像服务导致我的 Docker 构建经常失败 因为 apt get 无法下载包或连接到服务器或类似的东西 我是唯一一个有这个问题的人吗 问题是我的 Debian 的还是 Do
  • 是否正在努力开发具有文件自动更改检测功能的面向构建的文件系统?

    我最近开始使用 Git 我发现的有趣功能之一是使用哈希来快速检测更改 另一方面 我看到构建工具 如 make ant javac 等 尝试通过检查文件的时间戳来检测源文件中的更改 这种方法的问题是 如果您从事不止一项工作 机器 你必须确保所
  • 实体框架 4.1 - 选择

    我使用以下表达式 ProductRepository Query Include Function x x ChildProducts Select Function y y PriceTiers Where Function z z Is