달성하고자하는 것은 Db에서 엔티티의 특정 속성 만 업데이트하는 것입니다. (UPDATE Foo Set Status = 'kool'WHERE ID = 99와 같은 것을 모방합니다.) 이 예제에서 Db의 열 하나만 업데이트하도록 EF를 적용하는 방법은 무엇입니까?
나는 이것을 시도 :public void SetFooStatus(Foo foo)
{
var fooToUpdate = new Foo()
{
Id = foo.Id,
Status =foo.Status
};
this.Context.Foos.Attach(fooToUpdate);
this.Context.Entry(fooToUpdate).Property("Status").IsModified = true;
this.Context.ValidateOnSaveEnabled = false;
this.dbSet.Attach(entityToUpdate); // This is IDbSet<Foo>
this.dbSet.Entry(entityToUpdate).State = EntityState.Modified;
this.dbSet.SaveChanges();
}
문제는 내가 EntityState.Modified에 주를 설정할 때 Chagned가 반환 true- -IsModified로, 모든 속성이 표시되어 있습니다.
내가 주석 처리하면 업데이트가 완료되지 않습니다. Db에서 변경 사항이 발생하지 않습니다.
질문 : Db의 다른 필드를 건드리지 않고 foo 개체의 Status 속성 만 업데이트하도록 EF를 적용하려면 어떻게해야합니까?