.Clear
を呼び出す)コレクションクリアしようとしています
:彼らの関係のために外部キープロパティを公開していないエンティティを保存中にエラーが発生した関係が削除された状態にある
を。 EntityEntriesプロパティは、単一のエンティティが例外のソースとして識別できないため、nullを返します。エンティティタイプに外部キーのプロパティを公開することで、保存時の例外処理を簡単に行うことができます。詳細については、InnerExceptionを参照してください。
内部例外がある:
'User_Availability' AssociationSetから関係は '削除済み' 状態にあります。多重度の制約がある場合、対応する 'User_Availability_Target'も 'Deleted'状態でなければなりません。
ユーザーは次のようになります。
....
ICollection<Availability> Availability { get; set; }
入手可能性は、次のようになります。問題の原因となったコードが
HasMany(x => x.Availability).WithRequired(x => x.User);
HasRequired(x => x.User).WithMany(x => x.Availability);
です
: 次のようにint ID { get; set; }
User User { get; set; }
DateTime Start { get; set;
DateTime End { get; set; }
設定があります
user.Availability.Clear();
DbSetを使用してアイテムを削除するなど、他の方法を検討しましたが、コードがきれいであるとは思われません。コレクションをクリアすることでこれを達成する方法はありますか?
スラマに感謝、私の問題を解決しました。 – Sam
投稿していただきありがとうございます!子オブジェクトの更新を実行すると、FKプロパティとナビゲーションプロパティのために同じ列に複数のSETステートメントが表示されます。 1つのSET文を生成するしかないのですか? – Thomas
@トーマス:私は手がかりがありません。 SQLの生成は、EFの手元にあり、制御が難しいです。同じFK列に対して2つのSET式が得られるのは、実際には驚いています。 EFはFKの物件とナビを知っているはずです。プロパティは、同じFK列と関係を表します。 – Slauma