是否自动生成 Linq 关联的实体集合键

本文关键字:实体 集合 关联 自动生成 Linq 是否 | 更新日期: 2023-09-27 18:30:24

我有一个实体集,它是调查的会话。 有一个指向响应集合的导航属性,这些响应也键到问题实体(使用数据库中的外键关系)。

我很容易通过简单地做

session.Responses

这将返回一个枚举列表,在大多数情况下,这很好。

但是,对于大型数据集,我遇到了一个概念问题。

如果我想根据项目从会话的响应集合中选择特定响应,鉴于它是一个集合,它是搜索操作还是扫描操作? 是否利用了响应和问题之间的 FK 关系?

如果没有,在会话分部类中创建一个键控字典,该类采用其响应集合并将其与问键配对,这是否明智? 这样,将直接寻求产生每个请求问题的确切答复。

是否自动生成 Linq 关联的实体集合键

LINQ over Objects 使用 Enumerators 来"扫描"集合。

编辑:最好的办法是在数据库中进行尽可能多的逻辑连接和过滤。使用 EF 查询表达式的结果加载字典时,将在数据库上执行查询,并将结果放入内存中。此时,您不再处理 IQueryable 表达式,而是处理一组 IEnumerable 对象。字典上的其他 LINQ 表达式是对象上的 LINQ。