1

したがって、エンティティフレームワークを使用して列(または最後の列)の最大値を取得する必要があり、これらのクエリは両方とも例外をスローします。

(取得しようとしているIDはvarchar型ですが、raw sqlで機能します。ここでも機能するはずです)

これです:

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

これを投げます:

タイプ'System.Linq.Queryable'で指定されたメソッド'EntityClub_.reservacionMaxreservacion'は、渡された引数に一致するオーバーロードがないため、LINQtoEntitiesストア式に変換できません。

そしてこれ:

 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;

テーブルにデータがない場合は、次のように置き換えnullられます0

于 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 に答える