我创建了一个使用实体框架进行数据库访问的编辑器。编辑器是一个通过 JavaScript 工作的客户端编辑器。当用户单击保存按钮时,JavaScript 调用我的 ASP.NET MVC 方法,并将数据作为 JSON 字符串。数据是一个包含节点列表的对象。我在 EF 中使用继承来允许节点具有不同的类型。从浏览器发送的 JSON 由 MVC 自动转换为 DTO 对象。然后我基于 DTO 对象创建 EF 对象。我的问题是如何保存对所有对象的修改?
现在我执行以下操作:
// Convert my DTO object to a EF db object
Document dbDoc = dtoDoc.ToEFDocument();
using (MyEntities db = new MyEntities())
{
db.ApplyCurrentValues("Documents", doc);
db.SaveChanges();
}
这有效,但它只更新文档对象中的属性(而不是在节点集合中所做的更改)。
有一个简单的解决方案吗?