【发布时间】:2015-10-12 00:48:52
【问题描述】:
我有以下代码在我的 MVC 程序中执行 CRUD 操作。
if (ModelState.IsValid)
{
CustomerDal dal = new CustomerDal();
dal.Customers.Add(obj);
dal.Entry(obj).State = EntityState.Modified;//added this line to resolve issue but still no change
dal.SaveChanges();
return View("customer", obj);
}
else
{
return View("entercustomer",obj);
}
还有我的客户班
public class CustomerDal : DbContext
{
public CustomerDal(): base("CustomerDal")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Customer>().ToTable("tbCustomer");
}
public DbSet<Customer>Customers { get; set; }
}
}
客户类别
public class Customer : DropCreateDatabaseIfModelChanges<CustomerDal>
{
[Required]
[RegularExpression("^[A-Z]{3,3}[0-9]{4,4}$")]
[Key]
public string CustomerCode { get; set; }
[Required]
[StringLength(10)]
public string CustomerName { get; set; }
}
程序运行时出现以下错误。
存储更新、插入或删除语句影响了意外 行数 (0)。实体可能已被修改或删除 实体已加载。看 http://go.microsoft.com/fwlink/?LinkId=472540 获取有关信息 理解和处理乐观并发异常。
表中不存在记录。这是一个新创建的表。 当我检查元素时,我可以看到我之前尝试过的所有项目都存在于上下文中,但未更新到数据库。当我添加以前没有尝试过的新项目时,不会发生并发错误。但数据不会更新到数据库中。
注意:我使用的是 MVC5
【问题讨论】:
-
dal.Entry(obj).State = EntityState.Modified;这行不应该存在 -
@Ppp ,我在收到错误后添加了该行。
标签: asp.net-mvc entity-framework entity-framework-4 entity-framework-6 entity-framework-5