问题解决了!
Attach该方法可能会帮助某人,但在这种情况下将无济于事,因为在将文档加载到Edit
GET控制器功能中时已经对其进行了跟踪。附加将引发完全相同的错误。
我在这里遇到的问题是由
canUserAccessA()在更新对象a的状态之前加载A实体的函数引起的。这正在破坏被跟踪的实体,并将对象的状态更改为
Detached。
解决方案是进行修改,
canUserAccessA()以便不会跟踪正在加载的对象。
AsNoTracking()查询上下文时应调用函数。
// User -> Receipt validationprivate bool canUserAccessA(int aID){ int userID = WebSecurity.GetUserId(User.Identity.Name); int aFound = db.Model.AsNoTracking().Where(x => x.aID == aID && x.UserID==userID).Count(); return (aFound > 0); //if aFound > 0, then return true, else return false.}出于某种原因,我无法
.Find(aID)与之配合使用,
AsNoTracking()但这并不重要,因为我可以通过更改查询来实现相同的目的。
希望这会帮助任何有类似问题的人!



