在关于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”之类的东西。获得所有这些主键值的完全替代方法当然总是受欢迎的。