呼び出すAcceptChanges
と、次のエラーが表示されます。
AcceptChanges
オブジェクトのキー値が 内の別のオブジェクトと競合するため、続行できませんObjectStateManager
。を呼び出す前に、キー値が一意であることを確認してくださいAcceptChanges
。
今、私はウェブをかなり検索しましたが、探していた答えが見つかりませんでした.
エンティティ オブジェクトの代わりに ID を使用して既に存在するエンティティを追加しないように設計されていることは知っていますが、それができない状況にあります。
一般的なインポートとエクスポートがあり、任意のエンティティ オブジェクトを渡すことができ、それを xml 形式にすることができます。逆に、任意の xml を指定して適切なエンティティを取得できます。カスタム形式で xml を作成する必要があったため、シリアライザーを使用できませんでした。
問題は、以前にメインエンティティに追加できた可能性のある、より深くネストされたエンティティがある場合にあり、その場で確認できないため、追加されます。同じエンティティが複数回追加される可能性があるという問題が発生します。
そして、さらに進んで変更を適用したい場合、エラーが発生します。
ここで、「同じエンティティを複数回追加する」という問題を防ぐという選択肢がなく、それらが追加された後に対処する必要があると考えてください。
から重複エンティティを削除してObjectStateManager
、apply changes を呼び出せるようにするにはどうすればよいですか?