Entity framework 实体框架更新-是否覆盖值

Entity framework 实体框架更新-是否覆盖值,entity-framework,entity-framework-4.1,Entity Framework,Entity Framework 4.1,我正在使用EntityFramework4.1对我的数据库执行CRUD操作。我已关闭以下属性: this.Configuration.ProxyCreationEnabled = false; this.Configuration.LazyLoadingEnabled = false; this.Configuration.AutoDetectChangesEnabled = false; 更新用户对象的我的方法 public void Edit(User user) {

我正在使用EntityFramework4.1对我的数据库执行CRUD操作。我已关闭以下属性:

this.Configuration.ProxyCreationEnabled = false;
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.AutoDetectChangesEnabled = false;
更新用户对象的我的方法

    public void Edit(User user)
    {
        _context.Entry(user).State = System.Data.EntityState.Modified;
        _context.SaveChanges();
    }
我检索到:

User.Forename = Joe
User.Surname = Bloggs
我将用户对象传递给我的编辑方法

User.Forename = Joe
User.Surname = Bloggs

如果我将我的用户对象传递给我的编辑方法,但我没有更改它的任何属性,如上所述。属性是否会以相同的值重写到数据库中,或者实体框架是否知道该值没有更改?

由于您将状态显式设置为“已修改”,因此即使所有属性值都没有更改,EF也会向数据库发送update语句

如果不希望EF使用相同的值更新数据库,则必须添加逻辑,以跟踪自将
AutoDetectChangesEnabled
设置为
false
以来值是否已更改