2
例如,我有一個與地址有關的聯繫人表。爲了與數據庫進行通信,我使用WCF數據服務。我有一張表格,裏面有聯繫信息和可能的地址列表。現在我創造的「地址插入」,並使用插入聯繫人列表(上下文是這裏的實體數據的上下文):
通過WCF數據服務插入新的父母/子女
context.AddToContact(contact);
context.SaveChanges();
在那之後我可以得到插入contact.ID並將其添加爲一個父ID來在地址列表中的所有地址:
cacheAddressList.ForEach(a =>
{
address.ContactID = contact.ID;
context.AddToAddress(address);
}
);
context.SaveChanges();
所以我必須做2個插入。
我知道在實體框架中,如果我在它們之間有導航屬性,我可以將子項添加到父項。在我的情況我有導航,但這樣的代碼不工作(接觸處理不當被保存但..):
context.AddToContact(contact);
cacheAddressList.ForEach(a =>
{
address.Contact = contact;
}
);
context.SaveChanges();
是否有可能在插入這裏一個事務中的所有孩子和家長?因爲如果有可能,我沒有創建所有的孩子,列出父插入後添加..
On context.SetLink(address,「Contact」,contact);出現「上下文當前沒有跟蹤實體。」例外。 – 0x49D1
設置了context.AddRelatedObject(contact,「navigation_property_with_address」,address)時工作。 !非常感謝你! – 0x49D1