簡単な質問があります。
コンテキストが私の EF コンテキストであり、応答者がデータベースから EF によって生成された実際の EF エンティティであると仮定します。
Respondentを更新する最短の方法は何ですか?
public void UpdateRespondent(Respondent respondent)
{
var resp = context.Respondents.First(r => r.RespondentId == respondent.RespondentId);
// Now... do I have to copy all properties from the respondent into resp ??
// But respondent is actually the Respondent entity
// Can I just replace it somehow?
context.SaveChanges();
}
本当にありがとう。
アップデート1
nrodic のおかげで、このコードは魅力的に機能します。
public void UpdateRespondent(Respondent changed)
{
var respondent = db.Respondents.FirstOrDefault(r => r.RespondentId == changed.RespondentId);
db.Respondents.ApplyCurrentValues(changed);
db.SaveChanges();
}
ただし、1 つ質問があります。最初の行「var Respondent =」はまったく必要ないようです !!
多くの例でこの行が存在する理由は何ですか?
ありがとう。
Update2
うーん、その最初の行が必要なようです。それ以外の場合は、2 行目に例外がスローされます (db.Respondents.ApplyCurrentValues(changed);)
提供されたオブジェクトのキーと一致するキーを持つオブジェクトが ObjectStateManager で見つかりませんでした。提供されたオブジェクトのキー値が、変更を適用する必要があるオブジェクトのキー値と一致することを確認してください。