これは別の場所で尋ねられますが、私はまっすぐな解決策を見つけることができません。 私のApiはオブジェクトモデルを渡しています。サーバ側では、渡されないオブジェクトのすべての値はnullと見なされます(意味があります)。 EF6に、渡されたオブジェクトからNull値を持つエンティティを更新しないように指示する方法はありますか?各プロパティを書き込む必要はありません。UoWアップデートを使用したEFリポジトリ
擬似コード
API
Update(int id, TaskEntity obj)
{
unitOfWork.Tasks.Update(id, userTask);
...
unitOfWork.Save()
}
レポ更新
Update(int id, T entity)
{
var existingRecord = Get(id); //Gets entity from db based on passed id
if (existingRecord != null)
{
var attachedEntry = Context.Entry(existingRecord);
attachedEntry.CurrentValues.SetValues(entity);
}
}
私の問題は、null値を持つすべてのデータが実際にNULL値を持つ既存のDBレコードの値を書き換えるということです。
これが解決された解決策または記事を教えてください。私は反射に向かうべきかどうか、automapperがこれを処理できるかどうか(私が信じる目的ではない)、あるいは何らかのヘルパーメソッドが書かれていなければならない。
ありがとうございます。
この更新方法で更新するTaskEntityのプロパティのリストがありますか?または、null以外のすべてのプロパティーを更新する場合しかし、あなたが提供していない値と、nullに更新/更新したい値を区別する方法はありますか? – Developer
私はあなたの質問を正しく理解していれば、関連するすべての情報をメソッドに渡し、エンティティの更新をすべて行うことができます。 – Eldho
あなたが反射を使用したい場合は、これを行うことができますhttp://stackoverflow.com/questions/17385472/entity-framework-only-update-values-that-are-not-null。しかし、個人的に私は最高のことを感じていません – Eldho