EntityFramework中几种更改数据的方式

时间:2022-07-18 22:47:50

首先声明个实体类,该实体类是EntityFrameWork自动生成的,对应数据表Test结构如下

public partial class Test
{
public int Id{ get; set; }--主键
public string Name{ get; set; }
public string Address{get;set;} }

第一种修改实体的方法:

                   Test a=new Test();

                   a.id=;--1是数据库中Test表某条记录的ID值

                   a.Name="name";

                   a.Address="address";

db.Entry(a).State = EntityState.Modified; --db就是DbContext

db.Entry(a).Property(item => item.Name).IsModified = false;
db.SaveChanges();

这时候Address的值会更新到表Test Id为1的Address字段,但是对应记录的name的值不会变化,此方法适合表字段比较多,需要大批量修改表字段内容的.

第二种修改实体的方法:

       Test a=new Test(){Id=,Name="name",Address="Address"};

       db.Test.Attach(a);

       db.Entry(a).Property(x => x.Name).IsModified = true;

       db.SaveChanges();

这时候只有Name的值会更新,这种方法适合更新少部分字段的时候使用

第三种修改实体的方法:

           var a= db.Test.Where(p => p.Id == ).First();
a.Name="name";
db.SaveChanges();

只会更改name的值.