代码之家  ›  专栏  ›  技术社区  ›  Zachary Scott

实体框架4:创建一个新实体,保存它,没有错误,没有插入记录?

  •  0
  • Zachary Scott  · 技术社区  · 14 年前

    编辑:更好的是,我这样做没有错误,也没有插入任何记录:

    var myTopLevelEntity = _DC.TopLevelEntity.Where( p => p.ID = 1).First();
    var newEntity = new Entity();
    newEntity.pocofield = ""; // set all primary keys and poco fields
    newEntity.TopLevelEntity = myTopLevelEntity;
    _DC.Entitys.Add( newEntity);
    

    我检查了SQL server的探查器。在此期间,除了select之外,没有其他命令发生。

    (结束编辑)

    我有一组实体要立即添加,都是新的。它们依赖于另一个表中的记录。我执行以下操作:

    var myTopLevelEntity = _DC.TopLevelEntity.Where( p => p.ID = 1).First();
    

    NewEntity具有层次结构:

    newEntity.A[].pocofields
    newEntity.B[].pocofields
    newEntity.C[].pocofields
    newEntity.C[].D[].pocofields
    

    所以,我这么做

    var newEntity = new Entity();
    newEntity.pocofield = ""; // various poco fields, set all keys
    
    var A = new AEntity();
    A.pocofield = ""; // various poco fields, set all keys
    newEntity.As.Add( A);
    
    var B = new BEntity();
    B.pocofield = ""; // various pocos, set all keys
    newEntity.Bs.Add( B);
    
    var C = new CEntity();
    C.pocofield = "";  // various, set all keys
    var D = new DEntity();
    D.pocofield = ""; // various, set all keys
    C.Ds.Add( D);
    newEntity.Cs.Add( C);
    
    newEntity.TopLevelEntitys.Add( myTopLevelEntity);
    _DC.Entitys.Add( newEntity);
    

    在这一点上,没有错误发生(我没有 try/catch 任何地方)。数据库中也没有显示任何记录。我做错什么了?

    1 回复  |  直到 14 年前
        1
  •  4
  •   Thomas Levesque    14 年前

    我想你忘了打电话 _DC.SaveChanges