Например, у меня есть таблица контактов, связанная с адресами.Для связи с базой данных я использую WCF Data Services.У меня есть форма, где есть контактная информация со списком возможных адресов.Сейчас я создаю список «Адреса для вставки» и вставляю контакт, используя (контекст здесь контекст данных сущности):
context.AddToContact(contact);
context.SaveChanges();
После этого я могу получить вставленный contact.ID и добавить его какродительский идентификатор для всех адресов в списке адресов:
cacheAddressList.ForEach(a =>
{
address.ContactID = contact.ID;
context.AddToAddress(address);
}
);
context.SaveChanges();
Так что мне нужно сделать 2 вставки.
Я знаю, что в Entity Framework я могу добавить детей к родителю, если у меня есть свойства навигации между ними,В моем случае у меня действительно есть навигация, но такой код не работает (контакт еще не сохранен ..):
context.AddToContact(contact);
cacheAddressList.ForEach(a =>
{
address.Contact = contact;
}
);
context.SaveChanges();
Можно ли здесь вставить всех детей и родителей в одну транзакцию?Потому что, если это возможно - мне не нужно создавать все эти списки детей, чтобы добавить их после родительской вставки.