【问题标题】:Entity Framework - Get Object as Collection实体框架 - 获取对象作为集合
【发布时间】:2009-03-18 15:58:04
【问题描述】:

是否可以从实体对象中获取集合(字典)?我需要这个来将对象的部分属性传递给需要 IDictionary 的函数。

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

    用途:

    Context.EntitySetName.AsEnumerable().ToDictionary(o => o.Key, o => o.Value);
    

    一些细节:

    在 LINQ to Entities 中不支持 ToDictionary。这意味着包含 ToDictionary 的 LINQ 查询字符串将编译,但不会执行,因为实体框架不知道如何将它们转换为 SQL。因此,您必须首先在数据库服务器上执行查询。因此,您必须首先将您的集合投影到一个列表中,该列表会枚举实体集。 AsEnumerable 会这样做。显然,如果实体集很大,您可能不想对整个事物执行此操作。使用 Where 调用或 LINQ 查询将结果集缩减为仅在字典中首先出现的项目。

    【讨论】:

      【解决方案2】:

      我认为我没有完全理解你的问题。如果这是您所指的,我不知道将您的数据库表绑定到 IDictionary 属性的任何方法,但是您应该能够创建构建字典所需的任何属性或方法,并传递它。由于某种原因,编写业务对象方法不是一种选择吗?

      【讨论】:

      • 示例:对象具有属性 a、b、c、x、y、z。我需要字典中的属性 x、y、z 作为键,并将 x、y、z 的值作为值。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      相关资源
      最近更新 更多