【发布时间】:2016-09-29 17:59:14
【问题描述】:
我有一个 linq 查询的结果,它是两个 SQL 表之间的连接
var result1 = db.TABLE1.Join(
db.TABLE2,
p1 => p1.ID,
p2 => p2.ID,
(p1, p2) => new
{
Id = p1.ID,
Date = p2.DATE,
Prop1 = p1.Prop1,
Prop2 = p2.Prop2,
Prop3 = p2.Prop3,
Prop4 = p2.Prop4
});
然后我尝试按 Id 对结果进行分组,并选择每个 Id 具有最新日期的行
var result2 = result1.GroupBy(p => p.Id)
.Select(q => q.OrderBy(p => p.Date).LastOrDefault())
.ToList();
但这失败了
LINQ to Entities 无法识别方法 'f__AnonymousTypee'6[System.Decimal,System.Double,System.Nullable'1[System.Decimal],System.Nullable'1[System.Decimal],System。 String,System.String] LastOrDefaultf__AnonymousTypee'6' 方法,该方法不能翻译成存储表达式。" 错误。
谁能帮我弄清楚我做错了什么?
【问题讨论】:
-
你确定这是 LINQ to SQL(在标题中)而不是实体?
标签: c# sql-server entity-framework linq