我有一个注册表单,当用户注册时,他/她的信息会保存到数据库中。有了我的代码,我得到了这个
类型的例外 ' System.Data.Entity.Validation.DbEntityValidationException'发生了 在login.dll中但未在用户代码中处理
其他信息:一个或多个实体的验证失败。 请参阅' EntityValidationErrors'物业详情。
最后一行的错误。当我检查保存到变量中的内容时,除了从表单中获取的内容之外,所有内容都为null。
实施例。 userType = null
,IPAddress = null
,CreatedDate = 1/1/0001 12:00:00 AM
,
但用户名,电子邮件等具有表格中的正确值。
public ActionResult Register(Models.User user)
{
try
{
if (ModelState.IsValid)
{
using (var db = new login.Models.ShareNotesEntities())
{
var crypto = new SimpleCrypto.PBKDF2();
var encrypPass = crypto.Compute(user.Password);
var newUser = db.Users.Create();
newUser.Username = user.Username;
newUser.Email = user.Email;
newUser.Password = encrypPass;
newUser.PasswordSalt = crypto.Salt;
newUser.Grade = user.Grade;
newUser.UserType = "User";
newUser.CreatedDate = DateTime.Now;
newUser.IsActive = true;
newUser.IPAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ??Request.ServerVariables["REMOTE_ADDR"];
db.Users.Add(newUser);
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "sdfasdf");
}
}
catch (DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
}
}
throw;
}
return View();
} -----> ERROR HERE