我是MVC的初学者。 我想要的是,用户将拥有一个位置。 我希望将所有位置保存在一个单独的表中。
我提出的模型是:
位置模型:
public class Location
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int LocationId { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
}
userprofile型号:
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Name { get; set; }
public virtual Location location { get; set; }
}
注册模型:
public class RegisterModel
{
//Attributes for UserName , password and ConfirmPassword
public string Name { get; set; }
public virtual Location Location { get; set; }
}
注册控制器:
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, propertyValues: new { Location = new Location () , Name = model.Name });
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
现在当我尝试注册时,
错误:对象类型HireCar2.Models.Location与已知的托管提供程序本机类型之间不存在映射。
从中午开始,我一直在尝试这个。 我能否知道上述代码中的错误。