Ale*_*aux 1 entity-framework max
所以我需要使用实体框架获取列(或最后一列)的最大值,并且这两个查询都抛出异常:
(我正在尝试检索的ID是varchar类型,但它在原始sql中工作,我认为它也应该在这里工作)
这个:
string maxCurrentID = db.reservations.Max().ReservationID;
Run Code Online (Sandbox Code Playgroud)
抛出这个:
类型为"System.Linq.Queryable"的指定方法"EntityClub_.reservacion Maxreservacion"无法转换为LINQ to Entities存储表达式,因为没有重载与传递的参数匹配.
还有这个:
string maxCurrentID = db.reservations.LastOrDefault().ReservationID;
Run Code Online (Sandbox Code Playgroud)
LINQ to Entities无法识别方法'EntityClub_.reservacion LastOrDefaultreservacion'方法,并且此方法无法转换为商店表达式.
我如何获得预期值?
san*_*eet 18
var maxReservationId=db.reservations.Max(u =>(int?)u.ReservationID) ?? 0;
Run Code Online (Sandbox Code Playgroud)
如果表中没有数据,则替换null为0
小智 7
您没有要求最高的ReservationID,您正在尝试获得最高的预订,并获得其ReservationID.EF不了解"最高预订"的含义.
var maxReservationID = db.reservations.Max(r => r.ReservationID);
Run Code Online (Sandbox Code Playgroud)
要么
var maxReservationID = db.reservations.Select(r => r.ReservationID).Max();
Run Code Online (Sandbox Code Playgroud)
应该管用.