我使用.NET4.5/EF5並從現有數據庫創建模型。實體框架5 SaveChanges上的外鍵新記錄
我用下面的代碼:
Order currentOrder = new Order();
using (var db = new ILSEntities())
{
try
{
Event currentEvent = db.Events.OrderByDescending(u => u.EventID).FirstOrDefault();
currentOrder.Event = currentEvent;
db.Orders.Add(currentOrder);
db.SaveChanges();
而且我看到正在創建Event對象,我覺得,這不是我想要發生的重複記錄。
我讀過很多關於類似問題的帖子,但是外鍵關係中兩個參與者的上下文是不同的。在這裏,我用我用來找到的上下文來保存,而另一個對象是新的。
我也試過:
currentOrder.Event.EventID = currentEvent.EventID;
,但還是失敗,那麼我得到的EF驗證錯誤,告訴我它需要值的事件對象的其他成員。
我也試過專門設置對象的EntityState
被複制到Detached
,Modified
等加入Order
對象之後,但SaveChanges
沒有成功之前。
我敢肯定,這是一個基本的問題,但它讓我百思不得其解
嘗試在'db.Orders.Add(currentOrder);'行後面調用'currentOrder.Event = currentEvent;'。 – nemesv
感謝您的幫助。不幸的是,這也沒有工作 –
是你正在使用的*確切*代碼?你顯示的內容不能創建一個新的'Event',因爲當你加載事件時,它被附加到狀態爲'Unchanged'的上下文中。 – Slauma