什么是asp mvc4中的db.SaveChanges()

时间:2014-03-26 08:02:30

标签: asp.net asp.net-mvc entity-framework

  

我在许多网站上搜索了关于保存更改但我没有得到任何正确的信息   答案可以任何人告诉我

  1. db.SaveChanges()
  2. ModelState

3 个答案:

答案 0 :(得分:1)

db.SaveChanges()不是ASP.NET MVC的一部分 - 它是Entity Framework的一部分,它是一组用于.NET Framework的对象关系映射(ORM)工具。所有这些方法都是将一些类(实体)中的数据保存(保存)到数据库中。

有用的链接:

ModelState MVC的一部分,允许将额外的绑定元数据从Controller传递到View,这通常主要是关于验证。

有用的链接:

答案 1 :(得分:0)

请阅读:

  1. http://msdn.microsoft.com/en-us/library/bb336792(v=vs.110).aspx
  2. http://www.asp.net/mvc/tutorials/older-versions/models-(data)/performing-simple-validation-cs
  3. 这应该对你有所帮助。基本上,实体框架使用db.SaveChanges()方法来保存对数据库的当前更改,并且ModelState表示例如验证错误。该模型无效。

答案 2 :(得分:0)

msdn说:它会保留对数据源的所有更新,并在对象上下文中重置更改跟踪。

示例

要将对实体所做的更改保存到数据库,我们需要调用ObjectContext类的SaveChanges方法。在下面给出的示例中,查询从实体集-Customer中检索第一个客户。

var customer = context.Customer.First();

context.Customer返回Customer类型的Objectset和LINQ扩展方法First()仅返回第一个客户。

customer.FirstName = "Yasser";
customer.LastName = "Shaikh";

context.SaveChanges();

我们可以通过为属性分配新值来编辑名称和地址等第一个客户详细信息,并调用SaveChanges()方法将更改保存回数据库。

在SaveChanges期间,ObjectContext确定哪些字段已更改。在此示例中,仅更改FirstName和LastName。因此,只有这两个值被发送到命令中。要标识要在数据库中更新的行,ObjectContext使用EntityKey属性的值。