Entity framework 实体框架-获取对象作为集合

Entity framework 实体框架-获取对象作为集合,entity-framework,Entity Framework,是否可以从实体对象中获取集合(字典)?我需要它,以便将对象的部分属性传递给需要IDictionary的函数。我不完全理解您的问题。如果您所指的是IDictionary属性,我不知道有什么方法可以将您的数据库表绑定到IDictionary属性,但是您应该能够创建构建字典所需的任何属性或方法,并传递这些属性或方法。出于某种原因,编写业务对象方法不是选项吗?使用: Context.EntitySetName.AsEnumerable().ToDictionary(o => o.Key, o =&

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

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

使用:

Context.EntitySetName.AsEnumerable().ToDictionary(o => o.Key, o => o.Value);
关于这方面的一些细节:


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

示例:对象具有属性a、b、c、x、y、z。我需要字典中的属性x,y,z作为键,x,y,z的值作为值。