1

我有以下更新方法,似乎有效:

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.StateDetached 和 StateAttached - 我在上面所做的一切正常,还是我遗漏了什么?

4

2 回答 2

0

没关系。 _db.Folders.FirstOrDefault读取Folder并附加到上下文中。

如果您只是传入Folder(不读取)并尝试更新它,则需要检查实体是否已附加。

基本上,Folder serverFolder = _db.Folders.FirstOrDefault(f => f.FolderId == folder.FolderId);确保文件夹已附加,因此您不必担心。

于 2013-03-12T02:30:14.707 回答
0

我认为你需要做_db.SaveChanges();而不是SaveChanges();

于 2013-03-12T04:16:59.740 回答