2011-10-20 22 views
0

我有這個非常簡單的TPH模型。 當我使用context.TIImport.AddObject(tiObj) 添加一個對象,然後調用context.TIImport.Count() - 該值不包含新對象?EF4實體集:如何從TPH對象獲取當前計數?

我希望能夠打context.SaveChanges()

enter image description here

var context = new CodeFirstContainer(); 

var g = new TIGuarantee 
      { 
       Id = 1, 
       AccountNumber = "123", 
       Amount = 123 
      }; 
      context.TIImports.AddObject(g); 

      var il = new TIImportLoan 
      { 
       Id = 2, 
       AccountNumber = "123", 
       Amount = 123 
      }; 
      context.TIImports.AddObject(il); 

      var i = context.TIImports.Count(); // = 0 

      context.SaveChanges(); 
      var j = context.TIImports.Count(); // = 2 
     } 

有沒有辦法告訴有多少個對象的集合中,而無需調用的SaveChanges之前添加多個對象?

回答

1

您可以通過進入ObjectContext.ObjectStateManager並檢查EntityState中所有的實體添加到正確的集合並將其包含在您的計數中。爲什麼你想這樣做,但不清楚。當您執行讀取操作時,這些實體將不會被包含,直到您使用SaveChanges()實際將它們持久保存到基礎數據存儲區;如果您的目標不是讓變更最終成功,那麼您可能應該考慮交易嗎?

+0

感謝:這是關於在SQL-CE中設置鍵的,因爲它不允許我使用Identity列。不過,我希望能夠分批保存,而不是在每個項目添加完成後 - 但是我會這樣做,以獲得下一個Id/Key。 – BlueChippy