私は次のクラスを持っています
public class ObjectA{
private List<ObjectB> list;
}
ObjectA
とObjectB
1:N の関係にあります。
ObjectB インスタンスの一部を削除したいので、次を使用します。
while (objectA.list.Any())
objectA.list.Remove(objectA.list.First());
リストは関係テーブルのものです -
List<ObjectAobjectB>
データベースでは、関係をnull可能な外部キーとして定義しました。それ以外の場合は取得します
操作に失敗しました: 1 つ以上の外部キー プロパティが null 非許容であるため、リレーションシップを変更できませんでした。リレーションシップに変更が加えられると、関連する外部キー プロパティが null 値に設定されます。外部キーが null 値をサポートしていない場合は、新しい関係を定義するか、外部キー プロパティに別の非 null 値を割り当てるか、関連のないオブジェクトを削除する必要があります。
Nullable 外部キーになっ
たので、SQL プロファイリングを実行すると、次のようになります。
exec sp_executesql N'update [Schem].[ClassB]
set [ClassAID] = null
where ([Id] = @0)
',N'@0 uniqueidentifier',@0='092CE959-370A-4785-AF4A-93A0E4952C59'
オブジェクトを削除する代わりに、リレーションに null を入力するだけです。
私は何を間違っていますか?
ありがとう。