Asp.net 在不附加/分离实体的情况下构建存储库更新方法?
我有以下更新方法,它似乎很有效:Asp.net 在不附加/分离实体的情况下构建存储库更新方法?,asp.net,asp.net-mvc-3,web-applications,asp.net-mvc-4,Asp.net,Asp.net Mvc 3,Web Applications,Asp.net Mvc 4,我有以下更新方法,它似乎很有效: public Folder UpdateFolder(Folder folder) { Folder serverFolder = _db.Folders.FirstOrDefault(f => f.FolderId == folder.FolderId); if (serverFolder != null) { serverFolder
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;
}
我刚刚注意到,我读到的大多数更新方法都调用Entry.StateAttached和StateAttached——我上面所做的是正确的,还是遗漏了什么 没关系_db.Folders.FirstOrDefault读取文件夹并将其附加到上下文
如果只是传入一个文件夹而没有读取并尝试更新它,则需要检查实体是否已附加
基本上,Folder serverFolder=\u db.Folders.FirstOrDefaultf=>f.FolderId==Folder.FolderId;确保文件夹已附加,因此您无需担心。我认为您需要执行_db.SaveChanges;而不是保存更改