我首先使用 c# Windows 应用程序实体框架工作代码,我需要获取表的最后一个 Id 值,但 +1(我需要在 Id 值上加 1)以不微妙地处理下一次插入的下一个 ID。
您说您正在使用实体框架,因此我假设您有一个派生自 DbContext
的上下文类,该类本身具有相关表的DbSet
。
因此,如果您的上下文类中有类似的东西:
public DbSet<Customer> Customers { get; set; }
然后,可以使用 LINQ to 实体执行以下操作:
var nextId = context.Customers.Max(x => x.Id) + 1;
嗨,
您可以在EF ID中设置为自动生成,当您插入新记录时,您的对象将获得以Db生成的新ID,您也可以在代码中获取它。
public class Foo
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string Name { get; set; }
}
-- here is how you can get id back
var context = new TestContext();
var newFoo = new Foo{ Name = "D" };
context.Foos.Add(newFoo);
context.SaveChanges();
Console.Write(newFoo.Id);
TextBox1.Text = newFoo.Id.ToString()