【发布时间】:2011-08-06 16:26:49
【问题描述】:
我有以下 LINQ To Entities 查询(简化形式):
ctx.BattlesUsers.Where(bu => bu.DateTime == ctx.BattlesUsers.
Where(BattleUserSpecifications.BattleIdIsEqualTo(bu.BattleId)).
Max(bu1 => bu1.DateTime));
引发异常“内部 .NET Framework 数据提供程序错误 1025。”。
这里的问题是我的规范调用。此问题的通常解决方案是将规范表达式调用移出查询并将表达式直接传递给 Where。但它在这里不起作用,因为我需要将 bu.BattleId 传递给表达式。
更新。
BattleIdIsEqualTo 的代码如下:
public static Expression<Func<Model.Entities.BattleUser, bool>> UserIdIsEqualTo(long userId)
{
return bu => bu.UserId == userId;
}
【问题讨论】:
-
BattleIdIsEqualTo()的返回类型是什么,它有什么作用/它是如何实现的? -
@svick, 表达式
> -
我们可以看看你的
BattleIdIsEqualTo,这样我们就知道我们在这里工作的是什么? -
@Marc Gravell,我已将代码添加到更新部分
标签: .net entity-framework linq-to-entities