私はこのドメインを持っています:
public class Phone {
public int Id { get; set; }
public string Number { get; set; }
public Person Person { get; set; }
}
public class Person {
public int Id { get; set; }
public IList<Phone> Phones { get; set; }
}
をロードしPerson
てクリアしPhones
ます。ただし、操作によってエラーが発生します。
// actually loads person from repository...
var person = _personRepository.Include(p => p.Phones).Where(p => p.Id == 1).First();
person.Phones.Clear();
_personRepository.Update(person);
Person
上に、をロードしてクリアするという単純化されたロジックを示しPhones
ます。ただし、次のエラーが発生します。
操作が失敗しました:1つ以上の外部キープロパティがnull許容でないため、関係を変更できませんでした。リレーションシップに変更が加えられると、関連する外部キープロパティがnull値に設定されます。外部キーがnull値をサポートしていない場合は、新しい関係を定義するか、外部キープロパティに別の非null値を割り当てるか、関連のないオブジェクトを削除する必要があります。
Person.Phones
実は全部クリアして新しいアイテムを追加したいです。ただし、1つずつ削除するのではなく、1つのクエリでクリアしたいと思います。
何か考えはありますか?手伝ってくれませんか。前もって感謝します。