3

Telerik OpenAccess ORMを使用すると、 2 つのオブジェクトUserInvestment. より具体的には、典型的な 1 対多の関係としてInvestments外部キーが含まれます。Userつまり、各ユーザーは複数の投資を持つことができますが、各投資は 1 人のユーザーしか持てません。

次に、オープン アクセス機能「Is Managed」を利用しようとしました。

ここに画像の説明を入力

これは、次のようなことができ、関連するすべての投資を削除できることを意味するはずですUser.Investments.Clear();(または、少なくともこれは多対多の関係ではうまく機能します) が、残念ながらこれを試みると、次のエラーが表示されます。

「更新に失敗しました: Telerik.OpenAccess.RT.sql.SQLException: 値 NULL を列 'UserID'、テーブル 'CODECorp.dbo.Investment' に挿入できません。列は NULL を許可しません。UPDATE は失敗します。」

明らかに、ORM が行おうとしているのは、投資オブジェクトからユーザーへの関連付け (つまり、外部キー) を削除するのではなく、削除することです。SQL プロファイラーを実行してこれを確認したUpdateところ、Delete.

それで、私はここで何が欠けていますか?単純に行を削除するのではなく、誤って関連付けを削除しようとするのはなぜですか?

4

1 に答える 1