Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在不附加/分离实体的情况下构建存储库更新方法?_Asp.net_Asp.net Mvc 3_Web Applications_Asp.net Mvc 4 - Fatal编程技术网

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;而不是保存更改