添付ファイルを使用してEF 5.xを使用してテーブルの更新を実行しようとしています。このテーブルには、必要な他のフィールドがありますが、既存の行があります。だから私はフェッチせずに更新しようとしています。 useridはテーブルの主キーです。私はステータスを更新しようとしています。それはEntityValidationErrorsをスローします。これはパスワードが必須であり、これは必須のフィールドで、プライマリキーではありません。これは既存の行の更新であるため、なぜ更新するためにrequriedフィールドを提供する必要がありますか?Update Entity Frameworkへのアタッチ
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);
}
}
}
}
最初の行では、新しい 'webUser'を作成していて、データベースから取得していません。ブレークポイントを設定し、 'webUser's'パスワードが' null'でないかどうか確認してください。 – Yoav
データを取得しませんでした。私は更新を行うつもりだったので、私は既にプライマリキーを持っています –