ana*_*ary 12 c# asp.net asp.net-mvc-4
我在UserProfile
table.like中创建自定义字段时遇到问题
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public int? AddressId { get; set; }
public int? UserDetailId { get; set; }
public string UserName { get; set; }
public UserDetail UserDetail { get; set; }
}
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
public virtual UserDetail UserDetail { get; set; }
}
public class UserDetail
{
public int Id{get;set;}
public string FirstName{get;set;}
public string LastName{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我也加入UserDetail
了DbContext
课堂
public DbSet<UserDetail> UserDetails{get;set;}
Run Code Online (Sandbox Code Playgroud)
问题是我何时使用
Web WebSecurity.CreateUserAndAccount(model.UserName, model.Password,
new { UserDetail = new UserDetail ()
}, false);
Run Code Online (Sandbox Code Playgroud)
它总是会出现一些错误,例如:对象类型不存在映射......但是如果我定义一个简单类型(比如string
,int
)而不是UserDetail
,它可以正常工作.
有人可以帮我解决这个问题吗?非常感谢!!
小智 12
我遇到了类似的问题并通过以下方式解决了问题:
将UserDetail和UserProfile结合到这一行:
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string FirstName{get;set;}
public string LastName{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
更新你的[HttpPost]注册表
WebSecurity.CreateUserAndAccount(model.UserName, model.Password,
propertyValues: new { FirstName= model.FirstName, LastName = model.LastName}, false);
Run Code Online (Sandbox Code Playgroud)
不要忘记根据需要将新字段添加到RegisterModel中
public class RegisterModel
{
....
public string FirstName{get;set;}
public string LastName{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
希望这对你有用
归档时间: |
|
查看次数: |
13235 次 |
最近记录: |