public bool RemoveBookCategories(IDictionary<Books,IList<C_Category>> books) { _context.Configuration.AutoDetectChangesEnabled = true; foreach (var book in books.Keys) { foreach (var category in books[book]) { if (!_context.ChangeTracker.Entries<Books>().Any(e => e.Entity.BookId == book.BookId)) _context.Books.Attach(book); if (!_context.ChangeTracker.Entries<C_Category>().Any(e => e.Entity.Id == category.Id)) _context.C_Category.Attach(category); book.C_Category.Remove(category); } } if (_context.SaveChanges() > 0) return true; return false; }
它按预期工作..有时候.
其他时候我收到此错误消息:
{“Attaching an entity of type ‘DataAccess.Plusbog.C_Category’ Failed because another entity of the same type already has the same primary key value. This can happen when using the ‘Attach’ method or setting the state of an entity to ‘Unchanged’ or ‘Modified’ if any entities in the graph have conflicting key values. This may be because some entities are new and have not yet received database-generated key values. In this case use the ‘Add’ method or the ‘Added’ entity state to track the graph and then set the state of non-new entities to ‘Unchanged’ or ‘Modified’ as appropriate.”}
尽管我觉得这几乎是我试图避免在变换跟踪器中寻找实体.
我觉得我已经尝试了所有可以找到的解决方案,但没有任何效果: – /
任何帮助,将不胜感激 :-)
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。