如何删除孤立记录

时间:2019-11-04 23:06:39

标签: entity-framework graphdiff

我正在尝试使用GraphDiff和Entity Framework更新跨多个表的一组记录。一切正常,除了我需要删除任何可能已替换的拥有实体的孤立记录。我缺少什么,因为我期望这种行为很普遍,所以我只需要弄清楚如何正确配置上下文或图形即可。这是我的示例代码:

        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;
            }
        }

1 个答案:

答案 0 :(得分:2)

免责声明:我是项目Entity Framework GraphDiff

的所有者

我们也通过电子邮件收到了同样的问题。答案是:

  

子级必须具有对父级的导航属性才能使其正常工作。否则,实体将被实体框架中的ChangeTracker跳过。