代码之家  ›  专栏  ›  技术社区  ›  Roger Johansson

在主细节关系EF4 POCO中持久化细节

  •  1
  • Roger Johansson  · 技术社区  · 14 年前

    场景:实体框架4、POCO模板和主-细节关系。

    //partial implementation of master entity
    partial class Master
    {
        public void AddDetail(x,y,z)
        {
            var detail = new Detail()
            {
               X = x,
               Y = y,
               Z = z,
            };
    
            //add the detail to the master
            this.Details.Add(detail);
        }
    }
    

    如果随后将主实例添加到上下文并提交,则不会保存详细信息:

    var masterObject = new Master();
    masterObject.AddDetail(1,2,3);
    myContext.MasterSet.AddObject(masterObject);
    

    在使用POCO模板时,有没有办法通过可达性来持久化细节?

    那么,有没有什么办法能让这项工作在不太杀伤力的情况下进行呢?

    2 回复  |  直到 14 年前
        1
  •  0
  •   Roger Johansson    14 年前

    我找到了解决办法。

    我只需在保存之前传递SaveOptions.detectChanges,如下所示:

    context.SaveChanges(SaveOptions.DetectChangesBeforeSave);
    

    这允许我将细节对象添加到主对象,而不将每个细节附加到上下文。

        2
  •  -1
  •   Dave Swersky    14 年前

    你呢 能够

    向接受上下文的实体添加构造函数,该上下文通过引用保存在私有字段中。你的 AddDetail _context 字段,如果它引用实例化的上下文,则在保存主记录后将详细信息添加到上下文中。

    然而。。。

    Here 是一篇关于在EntityFramework4中实现存储库模式的优秀文章。