89

ID列を持つテーブルUserがありますがUserID、最大値を返すコードの正しいLinq to Entity行はUserID何ですか?

私はもう試した:

using (MyDBEntities db = new MyDBEntities())
{
    var User = db.Users.Last();
    // or
    var User = db.Users.Max();

    return user.UserID;
}

しかしLastMaxサポートされていないようです。

何か案は?

4

7 に答える 7

162

このようにしてください

db.Users.OrderByDescending(u => u.UserId).FirstOrDefault();
于 2008-11-25T00:11:57.893 に答える
113

これを試して

int intIdt = db.Users.Max(u => u.UserId);

アップデート:

レコードがない場合は、上記のコードを使用して例外を生成し、これを試してください

int? intIdt = db.Users.Max(u => (int?)u.UserId);
于 2009-03-27T14:06:33.660 に答える
12
var max = db.Users.DefaultIfEmpty().Max(r => r == null ? 0 : r.ModelID);

db にレコードがない場合、例外なく 0 が返されます。

于 2015-05-15T11:08:26.577 に答える
11

ニサプリエト

Users user = bd.Users.Where(u=> u.UserAge > 21).Max(u => u.UserID); 

MAXはフィールドと同じタイプの変数を返すため、機能しません。この場合、ユーザーオブジェクトではなくINTです。

于 2010-08-18T16:38:41.147 に答える
3

asyncand機能を使用している場合はawait、次のようになります。

User currentUser = await db.Users.OrderByDescending(u => u.UserId).FirstOrDefaultAsync();
于 2016-12-12T10:13:46.613 に答える
-1

追加したエンティティの ID を取得する最良の方法は次のとおりです。

public int InsertEntity(Entity factor)
{
    Db.Entities.Add(factor);
    Db.SaveChanges();
    var id = factor.id;
    return id;
}
于 2017-04-10T19:40:12.140 に答える