在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”之类的东西。获取所有这些主要关键值的完全替代方法是非常受欢迎的。