0

私は次のエンティティツリーを持っています:

ParameterDefinition-->ParameterOperation
ParameterDefinition-->ParameterGroup-->Parameter

また、 と の間には多対多の関係 (FK-FK テーブルにマップ) がParameterOperationありParameterます。すべての関連付けは削除カスケードとして宣言されます (多対多のみが削除カスケードではありません)。 ( ) を介してMarkAsDeleted Parameterオブジェクトを作成すると、DB から削除され、マップ テーブルも更新されます (行が削除されます) が、 ( )から削除しようとすると、まったく削除されません (削除クエリは実行されません) 。 DB上)。何が問題なのですか?ParameterOperationParameterDefinition.ParameterOperations[0].Parameters[0].MarkAsDeletedParameterParameterGroupParameterDefinition.ParameterGroups[0].Parameters[0].MarkAsDeleted

また、多対多の関係を削除するにはどうすればよいですか? たとえば、すべてのパラメータとすべてを保持したいが、とParameterOperationsの間の関係を削除したい。Parameters[0]ParameterOperations[0]

どうすればいいですか?

NavigationProperty を設定するParameterDefinition.ParameterOperations[0].Parameters.MarkAsDeletedと、実際には DB から必要のないパラメータが削除されました

4

1 に答える 1

0

Parameterコレクションからエンティティを削除ParameterOperation'sし、コンテキストを保存するだけで、ジャンクション テーブルに存在する多対多の関係を削除できます。

ParameterDefinition.ParameterOperations[0].Parameters.Remove(ParameterDefinition.ParameterOperations[0].Parameters[0]);
Context.SaveChanges();
于 2012-09-10T12:35:55.870 に答える