コレクションをクリアしようとすると (を呼び出す.Clear
)、次の例外が発生します。
リレーションシップの外部キー プロパティを公開しないエンティティの保存中にエラーが発生しました。単一のエンティティを例外のソースとして識別できないため、EntityEntries プロパティは null を返します。保存中の例外の処理は、エンティティ タイプで外部キー プロパティを公開することで簡単に行うことができます。詳細については、InnerException を参照してください。
内部例外は次のとおりです。
「User_Availability」AssociationSet からの関係は「削除済み」状態です。多重度の制約がある場合、対応する「User_Availability_Target」も「削除済み」状態でなければなりません。
ユーザーは次のようになります。
....
ICollection<Availability> Availability { get; set; }
可用性は次のようになります。
int ID { get; set; }
User User { get; set; }
DateTime Start { get; set;
DateTime End { get; set; }
構成は次のとおりです。
HasMany(x => x.Availability).WithRequired(x => x.User);
HasRequired(x => x.User).WithMany(x => x.Availability);
問題の原因となっているコードは次のとおりです。
user.Availability.Clear();
DbSet を使用してアイテムを削除するなど、他の方法も検討しましたが、コードがきれいになるとは思えません。コレクションをクリアすることでこれを達成する方法はありますか?