从实体列表中选择主键,通用(使用ObjectContext)

时间:2012-12-12 13:03:11

标签: c# entity-framework generics

在stackoverflow的另一个问题中,我发现可以找到类型为T的实体的主键VALUE

x=> x.EntityKey.EntityKeyValues[0].Value

我有一个IQueryable< T> q

其中TModel:EntityObject,new()

我希望获得所有主键的列表。

   List<int> primarykeyvalues =  q.Select(x => (int)x.EntityKey.EntityKeyValues[0].Value).ToList()

LINQ to Entities

不支持ArrayIndex

这本质上应与

相同
List<int> primarykeyvalues = DB.Products.Select(x=>x.Id).ToList()

(但后来是通用的)

(我意识到这只适用于非复合键,但这与我的情况无关)

以任何方式解决linq-to-entities无法识别EntityKeyValues的数组索引器?

解决方案是通用的,我宁愿不依赖于魔术字符串中的“Id”之类的东西。获取所有这些主要关键值的完全替代方法是非常受欢迎的。

0 个答案:

没有答案