0

嗨在这里,我们在这里我们另一个实体框架问题和更新子实体。
该场景:
我有一个名为客户的对象,有评估和每周评估。客户创建并保存正确,但是评估(子实体)不附加并添加到数据库中。更新子实体实体框架

 public SHAID.DataLayer.Client Save(SHAID.DataLayer.Client client) 
    { 
     System.Data.EntityKey key; 
     object originalItem; 

     using (_shaidEntities = new DataLayer.SHAIDEntities()) 
     { 

      key = _shaidEntities.CreateEntityKey("Clients", client); 

      if (_shaidEntities.TryGetObjectByKey(key, out originalItem)) 
      { 

       foreach (var item in client.Assessments) 
       { 
        if (item.Id == default(int)) 
        { 
         item.Client.Id = client.Id; 

        } 
       } 

       _shaidEntities.ApplyCurrentValues(key.EntitySetName, client); 

       //client.WeeklyAssessments.Load(); 
       //client.Assessments.Load(); 
      } 
      else 
      { 
       _shaidEntities.AddToClients(client); 
      } 

      _shaidEntities.SaveChanges(); 

     } 

     return client; 
    } 

客户对象贴有评估和客户参考编号是alreeady用正确的ID
我已经尝试了不同的解决方案时,我遍历的评估集合(ADDOBJECT,附加),但每次填充背景抱怨它已经连接

请帮

非常感谢

安德鲁

回答

0

通过创建新评估并将它们添加到originalItem中来管理排序。编辑现有评估是简单的将originalItem列表中找到并更新

只好取消注释client.WeeklyAssessments andclient.Assessments找回充满标识对子实体