attachを使用してEF5.xを使用してテーブルを更新しようとしています。このテーブルには、必須のその他のフィールドがありますが、既存の行です。だから私はフェッチなしで更新しようとしています。useridは、テーブルの主キーです。ステータスを更新しようとしています。ただし、パスワードが必要であるというEntityValidationErrorsがスローされます。これは、別の必須フィールドですが、主キーではありません。これは既存の行の更新であるため、更新に必要なフィールドを提供する必要があるのはなぜですか?
var webUser = new WebUser() { UserId = webUserId, OnlineStatus = (sbyte)status };
using (var dbxupdate = new xEntities())
{
try
{
dbxupdate.WebUsers.Attach(webUser);
dbxupdate.Entry(webUser).State = EntityState.Modified;
dbxupdate.Entry(webUser).Property(x => x.OnlineStatus).IsModified = true;
dbxupdate.SaveChanges();
}
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
}
}
}
}