entity-framework - 如何删除孤立记录
问题描述
我正在尝试使用 GraphDiff 和实体框架来跨多个表更新一组记录。除了我需要删除任何可能已被替换的拥有实体的孤立记录外,一切正常。我缺少什么,因为我希望这种行为很常见,我只需要弄清楚如何适当地配置上下文或图形。这是我的示例代码:
using (EfDataContext ctx = new EfDataContext())
{
try
{
ctx.Database.Log = msg => _sysLogObject.Debug(msg);
ctx.UpdateGraph(assay, map => map
.OwnedCollection(p => p.Imagings, with => with
.OwnedEntity(p => p.ImagingCellType))
.OwnedEntity(p => p.DisplayTemplate)
.OwnedEntity(p => p.ExportTemplate)
.OwnedEntity(p => p.PrintTemplate)
);
ctx.SaveChanges();
success = true;
}
catch (Exception ex)
{
_sysLogObject.Error(ex);
throw;
}
}
解决方案
免责声明:我是Entity Framework GraphDiff项目的所有者
我们也通过电子邮件收到了同样的问题。答案是:
子级必须具有朝向父级的导航属性才能使其工作。否则,实体框架中的 ChangeTracker 只会跳过实体。
推荐阅读
- jquery - 使用两个数组的 Ajax 请求
- ios - 像whatsapp一样在tableview滚动上显示日期标签
- reactjs - Redux form v8.0.1 main module field could not be resolved 反应原生错误
- python - cx_Freeze 包含依赖的 py 文件
- html - 作为 Main Nav 的一部分的 Spacing 下拉选项的复杂性
- python - 如何使用 Python 从一个工作簿中的所有工作表中收集数据
- ios - AudioKit .nearestQuantizedPosition 缺少节拍?
- javascript - 从 v6.8 升级到 v7.4.2 后,Redux Form 为每个 Field 元素调用 MapStateToProps
- security - Redis 安全性:远程连接到绑定到 Localhost 的 Redis 服务器
- python - 在循环中的指定索引处将字符串插入二维数组