マスターテーブルと詳細テーブルがあります。たとえば、マスター テーブルはObjectSet<'MasterObject>
で、詳細テーブルはObjectSet<'DetailObject>
です。したがって、それぞれMasterObject
に が含まれますEntityCollection<'DetailObject>
。私が理解しているようにDetailObject
、次を使用してデータベースから削除できます。
EntityCollection<'DetailObject> ec = masterObject.DetailObjects;
// ナビゲーション プロパティとしてec.Remove(deleting_detail_object);
// delete_detail_object は削除され、削除対象としてマークされます。context.SaveChanges();
// 例外があります
(ナビゲーション プロパティ)Remove()
の後は. 正常です。ただし、次の例外を教えてください:deleting_detail_object.MasterObject
null
context.SaveChanges()
「操作に失敗しました: 1 つ以上の外部キー プロパティが null 値を許容しないため、リレーションシップを変更できませんでした。リレーションシップが変更されると、関連する外部キー プロパティが null 値に設定されます。外部キーは null 値をサポートしていません。新しい関係を定義する必要があります。外部キー プロパティに別の非 null 値を割り当てるか、関連のないオブジェクトを削除する必要があります。」
これは で削除できますがDetailObject
、context.RemoveObject()
で削除できEntityCollection<>
ますか?