ASP.netコアエンティティフレームワークCurrentValues.SetValues()ベスト現在の代替

asp.net asp.net-core entity-framework entity-framework-core

質問

Entity Framework Coreで作業しているユーザーが知っているように、現在のバージョンにはEntitiesのCurrentValues.SetValues()の実装はありません。この問題は、次のリリースv1.1でサポートされるようです。それまでは、誰かがエンティティエントリを更新するためのソリューションを持っていますか?

コンテキストの場合、過去のエンティティフレームワークのSetValues関数はエンティティを取得し、そのプロパティをパラメータとして渡されたエンティティの値に更新します。

var updatedEntity = currentEntity.CurrentValues.SetValues(newValues);
_dbContext.SaveChanges();

私はいくつかの実装でPropertyInfoを使って一般的な更新機能を見いだしましたが、すてきなクリーンなソリューションに見えるものは見つかりませんでした。私はでも得ることができるものを取る必要があります:)

psこの関数は、他の関連するエンティティの更新が必要な複雑なオブジェクトグラフを持たない単純なエンティティに対してのみ機能することがわかりました。私のユースケースは簡単です。今は手動でプロパティを手動でマップする必要があります。

受け入れられた回答

編集:EFコアv1.1.0がリリースされたので、CurrentValues.SetValues()が動作します。

次のコードスニペットを参照してください

var currentEntity = dbSetEntity.Find(id);
_dbContext.Entry(currentEntity).CurrentValues.SetValues(newValues);


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ