Обновление Entity Framework дочерних сущностей

Привет. Вот еще один вопрос Entity Framework и обновление дочерних объектов.
Сценарий:
У меня есть объекты с именем "Клиенты", которые имеют оценки и еженедельные оценки. Клиенты создаются и сохраняются нормально, однако оценка (дочерняя сущность) не прикрепляется и не добавляется в базу данных.

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

К объекту клиента прикреплена оценка, а идентификатор ссылки клиента уже заполнен правильным идентификатором
Я пробовал различные решения, когда перебираю коллекцию оценок (AddObject, Attach), но каждый раз, когда контекст жалуется, что он уже прикреплен

Пожалуйста помоги

Очень признателен

Андрей


person amun1000    schedule 17.03.2013    source источник


Ответы (1)


Удалось разобраться с этим, создав новые оценки и добавив их к исходному элементу. Редактирование существующих оценок было просто найдено в списке исходных элементов и обновлено.

Пришлось раскомментировать client.WeeklyAssessments andclient.Assessments, чтобы вернуть заполненные идентификаторы для дочерних объектов.

person amun1000    schedule 18.03.2013