我有Pin Model
public class Pin
{
[Key]
[Column("pin")]
public int Id { get; set; }
[StringLength(50, MinimumLength = 1)]
[Column("desc", TypeName = "varchar")]
public string Description { get; set; }
}
我有MyDbContext
public class MyDbContext : DbContext
{
public MyDbContext() : base("DbName")
{
Database.SetInitializer<MyDbContext>(new MyDbInitializer());
}
public virtual IDbSet<Pin> Pins { get; set; }
}
internal class MyDbInitializer : CreateDatabaseIfNotExists<MyDbContext>
{
protected override void Seed(MyDbContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
context.SaveChanges();
return;
}
}
我正在使用MyDbContext添加引脚
var pin = new Pin{ Description = "Test description" };
using (var context = new MyDbContext())
{
context.Pins.Add(pin);
context.SaveChanges();
}
完成SaveChanges
后,对象pin
已更新Id
,例如值为1300但根据数据库最新Id
应为1310且1300已经忙碌。 Bug仅出现在一个生产环境中,不可能在本地或临时环境中重现
任何有关方向调查的建议都值得赞赏
答案 0 :(得分:0)
我会在DBSET上添加pin:
var pin = new Pin{ Description = "Test description" };
using (var context = new MyDbContext())
{
context.Pins.Add(pin);//here
context.SaveChanges();
}