1
我試圖堅持收集子元素,解決方案有效,但我想問問更有經驗的人,如果方法是正確的?實體框架插入子實體
public bool InsertNewActionHistory(ActionHistory actionHistory)
{
bool result = false;
using (TransactionScope transactionScope = new TransactionScope())
{
this.ActionHistories.AddObject(actionHistory);
if (actionHistory is ActionUpdate)
{
foreach (ActionUpdateDetail updateDetail in ((ActionUpdate)actionHistory).ActionUpdateDetails)
{
ActionUpdateDetails.AddObject(updateDetail);
}
}
this.CommitChanges();
transactionScope.Complete();
result = true;
}
return result;
}
嗨克雷格,這是一個POCO場景,數據庫第一種方法。不管你是否喜歡它,我已經設法將它排除在外,沒有非常規的代碼。我不知道問題出在哪裏。一開始嘗試孩子,即導航屬性根本不能持續?!然後我決定嘗試使用交易範圍,並以提供的代碼結束。一旦我逐漸刪除了所有不必要的代碼,它就會開始工作。 CommitChanges方法只對上下文的SaveChanges方法進行調用。這可能是因爲交易範圍或其他因素阻止了孩子的拯救。 – bignermo 2010-10-14 13:40:56
我會嘗試返回並重現a behavior行爲,如果成功,我會分享它。無論如何,非常感謝您的幫助:) – bignermo 2010-10-14 13:41:44