EntityFramework中几种更改数据的方式

首先声明个实体类,该实体类是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;--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=1,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 == 1).First();
              a.Name="name";
              db.SaveChanges();

只会更改name的值.

原文地址:https://www.cnblogs.com/cby-love/p/6238429.html