ID列UserID
を持つテーブルUserがありますが、最大UserID
を返すコードの正しいLinq to Entity行は何ですか?
私はもう試した:
using (MyDBEntities db = new MyDBEntities())
{
var User = db.Users.Last();
// or
var User = db.Users.Max();
return user.UserID;
}
しかし、Last
とMax
はサポートされていないようです。
何か案は?
こうやって
db.Users.OrderByDescending(u => u.UserId).FirstOrDefault();
これを試して
int intIdt = db.Users.Max(u => u.UserId);
更新:
レコードがない場合、上記のコードを使用して例外を生成しますこれを試してください
int? intIdt = db.Users.Max(u => (int?)u.UserId);
ニサプリエト
Users user = bd.Users.Where(u=> u.UserAge > 21).Max(u => u.UserID);
mAXはフィールドと同じタイプの変数を返すため、この場合はユーザーオブジェクトではなくINTです。
var max = db.Users.DefaultIfEmpty().Max(r => r == null ? 0 : r.ModelID);
dbにレコードがない場合、例外なしで0を返します。
async
およびawait
機能を使用している場合、次のようになります。
User currentUser = await db.Users.OrderByDescending(u => u.UserId).FirstOrDefaultAsync();
追加したエンティティのIDを取得する最適な方法は次のとおりです。
public int InsertEntity(Entity factor)
{
Db.Entities.Add(factor);
Db.SaveChanges();
var id = factor.id;
return id;
}