私たちのデータベースにはユーザーがいます。ユーザーは、特定のメタデータ(場所、年齢など)を関連付けることができます。それに加えて、彼らはプロフィール画像を持っています。 ユーザーはいつでもこれらのものを編集できます。個々のフィールドのEntityStateの変更を確認する
我々はに実行する問題は、ユーザーが自分の情報を編集するために行くが、彼らは画像を選択しないときということです - 前の画像は消去されます(NULL)。
私は、私はそれが次のコードを使用して、当社のユーザー・リポジトリに遊びに来る把握我々が変更したユーザーを保存するために行くとき、私たちはif(user.profileImage == null) don't save it
を言うことができる必要があることを理解:
public void SaveUser(Domain.Entities.User user)
{
if (user.UserId == 0)
{
context.Users.Add(user);
}
else
{
context.Entry(user).State = EntityState.Modified;
//The logic would be here
}
context.SaveChanges();
}
しかし私はそれが何をしようとしても動作しないようです。
私の質問です:EntityState全体ではなく個々のフィールドの変更を確認する方法はありますか?
正直言って良い回避策ではありません。ユーザーは、送信ボタンをクリックする前に画像が消えてしまった理由が不思議に思うでしょう。私は私の答えに代替案を掲示しました。基本的に、壊れやすいセッションオブジェクトではなく、イメージが既に格納されているストレージとしてデータベースを使用します。 – Slauma