2

エンティティフレームワークコアで作業しているユーザーが知っているように、現在のバージョンにはエンティティのCurrentValues.SetValues()の実装はありません。これは、次のリリースv1.1には、issueのようにサポートされているようです。それまでは、誰かがエンティティエントリを更新するためのソリューションを持っていますか?パラメータすなわちとして渡されたエンティティの値にASP.netコアエンティティフレームワークCurrentValues.SetValues()ベスト現在の代替

状況について、過去のエンティティフレームワークでSetValues機能がエンティティを受け取り、それを更新しプロパティ:

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

私はにPropertyInfoを使用していくつかの実装を見つけましたジェネリックな更新機能を作っても、いいクリーンなソリューションに見えるものは見つけられていません。私が得ることができるものを取らなければならないかもしれません:)

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

+1

を参照してください。 –

+1

@GertArnoldと付き合っています。既にEF Coreベータテストプログラム(EF Core v1.0が現実)に参加しているので、もう1つは傷ついてくれません:) –

+1

@IvanStoev私はベータ版のように感じます1.1プレビュー返信ありがとう –

答えて

1

EDIT:EF Core v1.1.0がリリースされたので、CurrentValues.SetValues()は動作します。

はあなたが1.1.0プレビューを使用することができ、次のコードスニペット

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

はい、これは動作するはずです。 CurrentValues.SetValues()は、上記のコメントで議論したように、v1.1.0の最近のリリースまでは利用できませんでした。 –

関連する問題