【问题标题】:Are Linq associated entity collections automatically keyed?Linq 关联的实体集合是否自动键入?
【发布时间】:2013-09-06 17:51:22
【问题描述】:

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

我很容易通过简单地调用响应集合

session.Responses

这会返回一个枚举列表,这在大多数情况下都可以。

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

如果我想从基于项目的会话的响应集合中选择特定响应,假设它是一个集合,它是查找还是扫描操作? Response 和 Question 之间的 FK 关系是否得到利用?

如果不是,在 Session Partial 类中创建一个 Keyed Dictionary 是否明智,该类接受它的 Response 集合并将其与 Question Keys 配对?这样,这将是直接寻求屈服每个请求的问题的确切响应。

【问题讨论】:

    标签: c# linq entity-framework partial-classes


    【解决方案1】:

    LINQ over objects 使用Enumerators,它“扫描”集合。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-14
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多