2011-07-02 101 views
0

我想從多對多的關係中刪除一個對象,但它拒絕工作。EF 4刪除多對多的對象

的結構如下:

我有一個產品表,每個產品都有excProducts

我試圖刪除excProduct用下面的代碼

var objectContx = new objectContx(); 
var prod = objectContx.Products.Where(p => p.ProductID == prodID).FirstOrDefault(); 
var excProd = objectContx.ExcProducts.Where(exc => exc.ExcProductID == excProdid).FirstOrDefault(); 
prod.ExcProducts.Attach(excProd); 
prod.ExcProducts.Remove(excProd); 
objectContx.SaveChanges(); 

excProd從數據庫中刪除,但是當我得到Product from objectContext它在列表中刪除了excProd。

我怎麼能從objectContext中刪除它呢?

回答

0

如果您的多對多關係有一個實體(例如,如果它有有效載荷),那麼該實體的實例必須被刪除。這可以手動完成或使用級聯刪除(在EDMX設計器中站在關係中時,請參閱屬性窗口中的選項)。

+0

Varod不會通過執行Remove(T)方法刪除實例嗎?如果沒有,我怎麼能刪除它(我不喜歡使用級聯)。謝謝 – StrouMfios

+0

嗨,首先請重新說明這個問題 - 不幸的是我不懂語法。其次,丹尼是我的第一個名字。 :-) –

+0

錯誤的複製粘貼爲你的名字。在我的主題中,我如何刪除實例?我認爲刪除(T)方法刪除實例。不是嗎? – StrouMfios