3
每當我嘗試更新我的某個模型時,都會出現此錯誤。更新很簡單:無法附加已存在的實體
Todo bn = service.GetTodos().Single(t => t.todoId == 1);
bn.Note.noteTitle = "Something new";
service.SaveTodo(bn);
而且車型有這種結構:
- 待辦事項有備註
- 待辦事項有任務
我的列表我的服務的SaveTodo看起來有點像這樣:
public void SaveTodo (TodoWrapper note)
{
using (Repository repo = new Repository(new HpstrDataContext()))
{
if (note != null)
{
Todo todo = repo.Todos.SingleOrDefault(t => t.todoId == note.todoId);
if (todo == null)
{
todo = new Todo();
todo.Note = new Note();
}
todo.dueDate = note.dueDate;
todo.priority = (short)note.priority;
todo.Note.isTrashed = note.Note.isTrashed;
todo.Note.permission = (short)note.Note.permission;
todo.Note.noteTitle = note.Note.noteTitle;
repo.SaveTodo(todo);
}
}
}
和存儲庫的SaveTodo方法很簡單,看起來像這樣:
public void SaveTodo (Todo todo)
{
if (todo.Note.noteId == 0)
{
dc.NoteTable.InsertOnSubmit(todo.Note);
} else
{
dc.NoteTable.Attach(todo.Note);
dc.NoteTable.Context.Refresh(RefreshMode.KeepCurrentValues , todo.Note);
}
if (todo.todoId == 0)
{
dc.TodoTable.InsertOnSubmit(todo);
} else
{
dc.TodoTable.Attach(todo);
dc.TodoTable.Context.Refresh(RefreshMode.KeepCurrentValues , todo);
}
dc.SubmitChanges();
}
誤差以這條線在庫被拋出:dc.NoteTable.Attach(todo.Note);
。我已經嘗試了很多不同的東西來使這個工作,但似乎沒有任何工作。
任何幫助,將不勝感激