EF6.0 更新数据的问题?

DbContext.Set().Attach(entity);
DbContext.Entry(entity).State = System.Data.Entity.EntityState.Modified;
DbContext.SaveChanges()

以上是EF6.0 更新数据的写法,但是我发现这样写entity中为空的属性会更新到数据中。
比如entity中我赋值了name属性和id属性(本来就是要跟新name属性)但是这样写ef会把除开id和name 属性的其他字段更新为空。

你的entity是new出来的么?
你应该先用
eneity = DbContext.表.Single(x => x.id = xxx);查询出来,然后再更新字段。

在查询的时候你试试不要全部查询,查询表中的指定列就行,然后再执行修改。

eneity = DbContext.表.Single(x => x.id = xxx);