問題タブ [graphdiff]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - GraphDiff の多対一および多対多の関係での空の行の挿入
コード ファーストのアプローチに従って、最新バージョンの Entity Framework と共に GraphDiff を使用しています。
Food
この方法でエンティティを更新しようとしています:
StartObjectSlots
とEndObjectSlots
は、他の無関係なデータを含む 2 つのリストです。には、そこに置くことができる多くのオブジェクト タイプの基本タイプであるタイプのオブジェクトInteractiveObjects
が含まれています。これらの派生型の 1 つ ( 1 対多のプロパティがあるInteractiveObject
としましょう)。IntObjDerived
今、私はこの方法で次のエンティティを更新しようとしています:
ここで、コードが実行されると、新しい空の ActionOfUser エンティティがデータベースに挿入されます。さらに、上記のエンティティの 1 対多のナビゲーション プロパティごとに、新しい空のエンティティが挿入されます。3 つの新しいレシピがデータベースに挿入されます。1 つは空のデータ、もう 1 つは半分が入力されたもの、もう 1 つは保存されるはずです。どちらの状況も望ましくないため、解決策を見つけようとしています。いくつかの変更を試しましたが、これに固執しました。助言がありますか?(これは2つの質問のようですが、データベースに関連する可能性があるため、1つにまとめることを考えました)。
編集:GraphDiff
何が起こっているのかを調べるためにダウンロードしてコンパイルしましたが、エンティティ ID 値以外は空のオブジェクトがいくつか作成されていることに気付きました。これらの副作用は、実際にはオブジェクト グラフ (新しい RecipeStep) に新しいノードを追加し、graphdiff がこれを完全にサポートしているかどうかわからないために発生すると思います。
更新 (tl; dr
バージョン):UpdateGraph
グラフの深さが 2 より大きいオブジェクトの Entity Framework の GraphDiff を使用して呼び出しを適用しようとしました。特に、データベースからサブノードがロードされた新しいノードが追加された場合。たとえば、UpdateGraph
呼び出しを複数の呼び出しに分割するなど、別のアプローチに従う必要がありますか?
前もって感謝します!
c# - エンティティを挿入してもキー フィールドが更新されない
GraphDiff を使用して、切り離されたエンティティをデータベースに挿入しようとしています。
それは次のようになります:
そして、私のaddObject
機能は基本的に次のとおりです。
新しく追加された Foo の ID を取得しようとすると問題が発生し、空 (0) のままになります。
EF はオブジェクトを実際にデータベースに挿入したものに更新すべきではありませんか? 何か足りないのですか?
c# - 単純なエンティティの部分更新にも GraphDiff を使用できますか?
EF6 CodeFirst を使用した WebApi2 プロジェクトがあります。また、モデルと dto の間のマッピングに AutoMapper を使用しています。私は OData を使用していません。
エンティティの更新を処理するソリューションを見つけようとしています。私は OData を使用していないので、Delta を使用できず、JsonPatch を使用したくありません。
私のシナリオでは:
- クライアントはデータを (dto として) サーバーに送信します
- サーバーは、EF を使用して DB から関連付けられたエンティティ/エンティティ グラフを読み込みます
- サーバーは、エンティティに dto の値をパッチする必要があります
- サーバーはパッチを適用したエンティティを保存し、EF は変更の追跡を処理する必要があります
私の問題は3にあります。
エンティティのパッチ適用に GraphDiff を使用できますか? (複雑なグラフを更新していた GraphDiff も使用します)。また、GraphDiff を使用できる場合、EF の変更追跡は自動的に開始されますか?
c# - モデルから Dto に外部 Id プロパティをマップする必要がありますか?
次のモデルがある場合:
Dto は、次のように外部 ID を除外する必要があります。
また、Graphdiff を使用してオブジェクト グラフを更新する場合、EF は CustomerType が CustomerTypeId にマップされていることを認識しますか?
c# - Entity Framework が 1 対 1 のエンティティを更新しない
私はこれらのモデルを持っています:
そしてマッピングクラス:
CRUD操作にGraphDiffを使用しています。
住所を使用して新しい顧客を追加すると、正常に機能します。ただし、次のようにして顧客の住所を削除したい場合:
そしてリポジトリで:
顧客の住所はデータベースで NULL に設定されています。ただし、アドレスはデータベースから削除されていません。
マッピング クラスの構成が間違っているのでしょうか、それとも GraphDiff が期待どおりに動作しないのでしょうか?
properties - graphdiffを使用してプロパティを無視するには?
Graphdiff および EDMX で EF6 を使用しており、特定のエンティティのプロパティを無視する必要があります。
挿入または更新のプロパティを取得しても常に NULL フィールドのままになるので、どうすればよいですか?
entity-framework - AutoFac による拡張メソッドを持つクラスの解決
DBContext クラスに拡張メソッドを追加するサードパーティ ライブラリGraphDiffを使用しています。私の Context クラスは、次のように Interface から継承されます
IoC には、レジスタ MyContext が IMyContext として含まれていました。インターフェイスには拡張メソッドのシグネチャとサードがありません。今、私は MyContext がその拡張メソッドをどのように持っているのかわかりませんか? MyContext の Object を作成すると、そのメソッドがありますが、 Inject を取得してもそうではありません