0

在关于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()

(但随后是通用的)

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

有什么方法可以解决无法识别 EntityKeyValues 的数组索引器的 linq-to-entities?

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

4

0 回答 0