エンティティモデルからデータが取り込まれています。これにはアイテムの属性が含まれています。最高速度、重量、サイズのカーパーツを考えてみましょう。多くのパーツがあり、ベース属性が決して変化しないので、私はすべてのレコードをキャッシュしました。エンティティのフレームワークとキャッシング - 変更がキャッシュに戻ってトラッキングされています
これらのパーツが使用されているかどうかによって、これらの属性が変更される可能性があるので、新しい車をセットアップし、キャッシュされたアイテム「Engine」から新しい車のオブジェクトに値をコピーしてから「TurboCharger」エンジンの最大速度、重量、サイズを向上させます。
私が遭遇している問題は、エンティティモデルがまだコンテキストを追跡しているようだということです。キャッシュされたデータに戻っています。したがって、ローカルメソッドでウェイトを増やすと、すべてのユーザーがウェイトを増やします。私は"MergeOption.NoTracking"を私のコンテキストに追加しようとしました。これは、すべてのエンティティトラッキングを削除するはずですが、それでもトラッキングを行っているようです。キャッシュをオフにすると、毎回新しい値がデータベースから取得されるため、正常に動作します。
エンティティモデルからレコードをコピーしたい場合は、「オブジェクトをコピーしますがエンティティからの履歴がない標準オブジェクトとして扱う」と言うことができますアイテムから、それは単なる平らなオブジェクトですか?
乾杯!
以前は.NoTrackingを使用してみましたが、これはDbContextを使用している場合にのみ発生すると思います。しかし、Detach(Tエンティティ)について言及しました。私は自分のレコードを取り出し、デタッチをコンテキスト上で実行しました(コンテキストではなく、返されたオブジェクト上で実行しましたが、いつも私はキャッシュしていました)。ありがとうございます! :D – boolean