public void DeleteAddress() { var mgr = CreateManager(); var client = CreateNew(); var key = client.GetKey(); // создаём инстанс вложенной сущности var address = new AddressBook(); try { #region . Create . var oldLength = 0; // считываем коллекцию вложенных сущностей var addressLst = client.AsDynamic().ADDRESS as IList <AddressBook>; if (addressLst == null) { addressLst = new WMSBusinessCollection <AddressBook>(); client.SetProperty("ADDRESS", addressLst); } else { oldLength = addressLst.Count; } // заполняем ссылки и обязательные поля вложенной сущности address.AsDynamic().ADDRESSBOOKINDEX = TestDecimal; address.AsDynamic().ADDRESSBOOKTYPECODE = "ADR_LEGAL"; // добавляем связь с вложенной сущностью, сохраняем addressLst.Add(address); mgr.Update(client); // читаем из БД по ключу client = mgr.Get(key); var addressLstNew = client.AsDynamic().ADDRESS as IList <AddressBook>; // проверка создания addressLstNew.Should().NotBeNull("Должны были получить хотя бы 1 элемент"); addressLstNew.Count.ShouldBeEquivalentTo(oldLength + 1, "Manager должен создавать вложенные сущности"); #endregion #region . Delete . // удалем связь с вложенной сущностью, сохраняем addressLst = client.AsDynamic().ADDRESS as IList <AddressBook>; address = addressLst[addressLst.Count - 1]; addressLst.Remove(address); mgr.Update(client); // убеждаемся, что корректно удалили client = mgr.Get(key); addressLstNew = client.AsDynamic().ADDRESS as IList <AddressBook>; if (addressLstNew == null) { oldLength.Equals(0); } else { addressLstNew.Count.ShouldBeEquivalentTo(oldLength, "Manager должен удалять вложенные сущности"); } #endregion } catch (Exception ex) { throw new Exception(ex.Message + " УДАЛИТЕ СТРОКУ ИЗ ТАБЛИЦЫ WMSADDRESSBOOK с ADDRESSBOOKINDEX = " + TestDecimal); } finally { ClearForSelf(); } }