2009-07-23 16 views
2

私はLinq to Sqlモデルを使用して新しいプロジェクトを開始しました。私は多対多の最初の関係を実装しています。私はいくつかの子オブジェクトを追加し、私はエラーを取得保存する前に1を削除しようとすると、システムLinq to Sql多対多関係

http://blogs.msdn.com/mitsu/archive/2008/03/19/how-to-implement-a-many-to-many-relationship-using-linq-to-sql-part-ii-add-remove-support.aspx

:私はこれを実装する方法に大きな情報を提供します。このブログを発見しました.InvalidOperationException: が接続されていないエンティティを削除できません。

誰かが既にブログの作者にこれについてコメントしていますが、回答はありませんでした。

非常に高く評価されました!

答えて

0

DataContextに吸い込まれていないエンティティで、DeleteOnSubmitを呼び出しています。

(むしろハックのように)これをチェックするには、次の操作を行います。

var e = some_entity; 

var cs = dc.GetChangeSet(); 

if (cs.Inserts.Any(x => x == e)) 
{ 
    dc.SomeTable.DeleteOnSubmit(e); 
} 

dc.SubmitChanges(); 
0

私は著者がないLINQ to SQLはでこの特定のポストは、「メモリに」働いていることに言及し、理由です疑います。もう1つの方法は、追加されたオブジェクトをコンテキストに挿入するonAddイベントを変更することです。これは少なくとも、表示されているエラーを軽減するはずです。

0

PLINQOが多対多の関係を処理する方法を見てください。多対多の関係を通じて別のエンティティに関連する各エンティティのリストがあります。ここで言及したエラーを受け取ることなく、追加と削除を行うことができます。