我有以下更新方法,似乎有效:
public Folder UpdateFolder(Folder folder)
{
Folder serverFolder = _db.Folders.FirstOrDefault(f => f.FolderId == folder.FolderId);
if (serverFolder != null)
{
serverFolder.Title = folder.Title;
serverFolder.Details = folder.Details;
}
SaveChanges();
return serverFolder;
}
我刚刚注意到我读过的大多数Update方法都调用了Entry.StateDetached和StateAttached - 这就是我上面所做的,或者我错过了什么?
答案 0 :(得分:0)
没关系。 _db.Folders.FirstOrDefault
读取Folder
并附加到上下文。
如果您只是传入Folder
(未阅读)并尝试更新实体,则需要检查该实体是否已附加。
基本上,Folder serverFolder = _db.Folders.FirstOrDefault(f => f.FolderId == folder.FolderId);
可确保附加文件夹,因此您无需担心。
答案 1 :(得分:0)
我认为您需要_db.SaveChanges();
代替SaveChanges();