私はEF 5(6ではなく)を使用しています。私はクラス以下のオブジェクトを持っており、それはEFを使ってDBにあります。後で更新前にプロパティが実際に変更されるかどうかを確認するには
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime DOB { get; set;}
}
、
は私が同じオブジェクト/レコードの更新を行うための要求を得ました。
更新を呼び出す前に、私は更新のための同じレコードを取得する可能性があるので、プロパティが実際に変更されたかどうか比較したいと思いますので、ブラインドの更新をしたくありません。
var student = _context.Students.select(x =>x.Name == "").first();
student.name = "";
student.age = "";
student.DOB = "";
_context.Entry(student).State = EntityState.Modified;
_context.saveChanges();
EFはこれにいくつか組み込まれていますか?
または、各プロパティを1つずつ比較して判断する必要がありますか?私は20のプロパティを持つことができます...
何かお考えですか?
「更新のために同じレコードを取得する可能性があります」とはどういう意味ですか?あなたのレコードにプライマリキーがありませんか? – CodeCaster
プライマリキーを持っていると私の質問に何か違いがありますか?保存したレコードに主キーがあります。後で名前、年齢、DOBパラメータを送信するだけで、同じメソッドを呼び出す人がいます。今私は盲目の更新を呼び出すか、少なくともプロパティを最初に比較するかどうかを判断する必要がありますか?私がEFについて何か不足している場合を除きます – simbada
'_context.Entry(student).State = EntityState.Modified;'行を削除すると、EFがあなたにチェックを行います。 –