我在Simplemembership的基础上定制了一下UserProfile,使其中一些个人信息独立出来成为了一个叫UserExtraInfo的ComplexType模型如下:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
[Display(Name = "编号")]
public int UserId { get; set; }
[Required]
[Display(Name = "用户名")]
[StringLength(10, MinimumLength = 2, ErrorMessage = "用户名的长度应该在2~10之间")]
public string UserName { get; set; }
[Required]
[Display(Name = "班级")]
[ForeignKey("ClassProfile")]
public int? ClassId { get; set; }
public ClassProfile ClassProfile { get; set; }
public UserExtraInfo UserExtraInfo { get; set; }
[Timestamp]
public byte[] RowVersion { get; set; }
}
[ComplexType]
public class UserExtraInfo
{
[Display(Name = "性别")]
public Gender? Gender { get; set; }
[DataType(DataType.PhoneNumber)]
[Display(Name = "电话")]
public string Phone { get; set; }
[DataType(DataType.Date)]
[Display(Name = "出生日期")]
public System.DateTime? BirthDay { get; set; }
[StringLength(30, ErrorMessage = "用户描述不能超过30个字")]
[DataType(DataType.MultilineText)]
[Display(Name = "用户简介")]
public string UserDesc { get; set; }
}
但是UserProfile是由WebSecurity来操作的,所以我在添加用户的时候是这样写的:
WebSecurity.CreateUserAndAccount(
"Administrator",
"admin",
new
{
ClassId = ClassIndex,
UserExtraInfo = new UserExtraInfo()
{
Phone = "18267912632",
BirthDay = new System.DateTime(2005, 9, 28),
UserDesc = "the Admin of this site!"
}
});
但是这样会报错,有人知道应该如何写吗?