1

所以我需要使用实体框架获取一列(或最后一列)的最大值,并且这两个查询都抛出异常:

(我要检索的 ID 是 varchar 类型,但它可以在原始 sql 中工作,我认为它也应该在这里工作)

这个:

string maxCurrentID = db.reservations.Max().ReservationID;

抛出这个:

无法将类型“System.Linq.Queryable”的指定方法“EntityClub_.reservacion Maxreservacion”转换为 LINQ to Entities 存储表达式,因为没有重载与传递的参数匹配。

和这个:

 string maxCurrentID = db.reservations.LastOrDefault().ReservationID;

LINQ to Entities 无法识别方法 'EntityClub_.reservacion LastOrDefaultreservacion' 方法,并且此方法无法转换为存储表达式。

如何获得预期值?

4

2 回答 2

19
var maxReservationId=db.reservations.Max(u =>(int?)u.ReservationID) ?? 0;

如果表中没有数据,则替换null0

于 2013-06-25T06:50:32.750 回答
7

您不是在要求最高的 ReservationID,而是在尝试获得最高的 Reservation,并获得它的 ReservationID。EF不明白“最高预订”是什么意思。

var maxReservationID = db.reservations.Max(r => r.ReservationID);

或者

var maxReservationID = db.reservations.Select(r => r.ReservationID).Max();

应该管用。

于 2013-01-13T08:18:19.713 回答