2013-09-16 3 views
1

Я только начал использовать Entity, и до сих пор это сделало мою жизнь бесконечно легкой. Однако, когда я пытаюсь обновить строку, здесь я столкнулся с проблемами. Погуглить привел меня к Attach(), к которому я пытался:База данных не обновляется

public void Update() 
{ 
    using (var context = new HDDCContainer()) 
    { 
     context.Projects.Attach(this); 
     context.SaveChanges(); 
    } 
} 

Это метод, который находится в моем классе Project.

Однако после запроса моей базы данных я обнаружил, что она, по сути, не обновлялась. Я не получаю никаких ошибок или исключений из этого. Когда я перехожу, я вижу изменения в проекте, который я создал.

+0

Давайте иметь полный код, который вы используете, чтобы сохранить лицо ... –

ответ

2

вам нужно сказать Рамочные Entity, что состояние объекта, который вы только присоединенными были изменены по сравнению со значением, которое находится в базе данных, вы просто изменить состояние входа как следующее :

  db.Favorites.Attach(favorite); 
      var ent = db.Entry(favorite); 
      ent.State = EntityState.Modified; 
      db.SaveChanges(); 

есть назад на него и дайте мне знать

+0

Дал это, и это сработало. Спасибо. – MyCodeSucks

+0

Приятно слышать это, без проблем –

2

Вы должны внести изменения в предприятие после прилагается.

Например

context.Projects.Attach(project); 

project.Name = "New Funky Name"; 

context.SaveChanges(); 

Если объект модифицируется вне сохранения метод/обновления, как в вашем примере, то вам может понадобиться для флага состояния вручную.

context.Projects.Attach(project); 
DbEntityEntry entry = context.Entry(day);  // Gets the entity Entry instance 
entry.Property("Name").IsModified = true;  // Individual property modified 
entry.State = System.Data.EntityState.Modified; // or Entire object modified 
+0

Ах ... Это имеет смысл! – MyCodeSucks

Смежные вопросы