我有一个简单的代码,我将数据插入到State_Master表中。在模型类中,我在状态id上使用了[DatabaseGenerated(DatabaseGenerationOption.Computed)]
属性来使其成为标识字段,并且与在数据库中将state_id字段设置为自动增量相同。
现在问题是我的add()当第一次运行此代码时,Action会命中两次,但如果同一页面我刷新它将只打一次。
由于此问题,它会添加具有不同ID的相同记录的重复条目。
我曾使用过实体框架。
代码:
模特课程:
public class state_model
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int state_id { get; set;}
public string state_name { get; set; }
}
控制器操作:
public ActionResult add()
{
DataLayer dal = new DataLayer();
state_model st = new state_model();
st.state_name = "Bihar";
dal.states.Add(st);
dal.SaveChanges();
return View("View");
}
数据库上下文:
public class DataLayer : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<state_model>().ToTable("state_master");
}
public DbSet<state_model> states { get; set; }
}
查看:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>View</title>
</head>
<body>
<div>
Data Inserted.....
</div>
</body>
</html>