2011-07-02 10 views
0

多対多リレーションシップからオブジェクトを削除しようとしていますが、作業が拒否されました。次のようにEF 4多対多オブジェクトを削除

構造は次のとおりです。

私はすべての製品は、私は次のコード

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(); 

でexcProductを削除しようとしていますexcProducts

を持って製品テーブルを持っていますexcProdがデータベースから削除されましたが、私が取得したときProduct objectContextから削除されたexcProdがリストにあります。

どうすればobjectContextから削除できますか?

答えて

0

多対多リレーションシップにエンティティがある場合(ペイロードがある場合など)、そのエンティティのインスタンスを削除する必要があります。これは、手動またはカスケード削除を使用して行うことができます(EDMXデザイナーの関係に立っている間、プロパティウィンドウのオプションを参照)。

+0

VarodはRemove(T)メソッドを実行してインスタンスを削除しませんか?そうでない場合、私はそれをどのように削除できますか(カスケードを使用しないことをお勧めします)。ありがとう、 – StrouMfios

+0

こんにちは、まず、質問を言い換えてください - 残念ながら私は文法を理解していませんでした。第二に、ダニーは私のファーストネームです。 :-) –

+0

あなたの名前の間違ったコピー貼り付け。私の主題で、インスタンスを削除するにはどうすればいいですか? Remove(T)メソッドがインスタンスを削除すると思った。それじゃない? – StrouMfios

関連する問題