我是 ASP.NET MVC4 的新手,在下面的代码中遇到验证错误。
我的应用程序正在使用身份和数据库。
我有一些表填充了一些测试数据。致电dc.SaveChanges()
返回验证错误。
我创建了以下类:Faculty
源自类Person
源自类IdentityUser
.
我创建了一个名为Faculty
,然后创建了一个Faculty
对象命名mark
并将其添加到Faculty
角色。作为mark
登录并且数据库开始初始化,我收到错误"User name Peter is already taken."
如果有解释,我们将不胜感激。
Code
Class Person
:
public class Faculty : Person {
public Faculty() {
this.Courses = new List<Course>();
SenecaId = string.Empty;
}
public Faculty(string fname, string lname, string phone, string senId)
: base(fname, lname, phone) {
this.Courses = new List<Course>();
this.Messages = new List<Message>();
SenecaId = senId;
}
[Required]
[RegularExpression("^[0][0-9]{8}$", ErrorMessage = "0 followed by 8 digits")]
public string SenecaId { get; set; }
public List<Course> Courses { get; set; }
public List<Message> Messages { get; set; }
}
Class IdentityUser
:
public class Person : IdentityUser {
public Person() {
FirstName = LastName = Phone = string.Empty;
}
public Person(string f, string l, string p) {
FirstName = f;
LastName = l;
Phone = p;
}
[Key]
public int PersonId { get; set; }
[Required]
[StringLength(40, MinimumLength = 3)]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required]
[StringLength(100, MinimumLength = 3)]
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Required]
[RegularExpression("^[2-9]\\d{2}-\\d{3}-\\d{4}$", ErrorMessage = "nnn-nnn-nnnn")]
public string Phone { get; set; }
}
Role Faculty
:
string roleFaculty = "Faculty";
if (!RoleManager.RoleExists(roleFaculty)) {
var roleFacultyCreateResult = RoleManager.Create(new IdentityRole(roleFaculty));
}
创造Faculty
目的 (Mark) 并将其添加到角色中Faculty
:
// 1 create faculty Mark (8)
Faculty mark = new Faculty();
// add "mark" to role "faculty"
mark.SenecaId = "034234678";
mark.FirstName = "Mark";
mark.LastName = "McTest";
mark.Phone = "555-567-6789";
mark.UserName = "Mark";
string UserMarkPw = "123456";
var UserMarkCreate = UserManager.Create(mark, UserMarkPw);
if (UserMarkCreate.Succeeded) {
var addUserMarkToRoleFacultyResult = UserManager.AddToRole(mark.Id, roleFaculty);
}
mark.HomeTown = "Markham";
var UserMarkInfo = new MyUserInfo() {
FirstName = "Mark", LastName = "McTest" };
mark.MyUserInfo = UserMarkInfo;
mark.PersonId = 8;
dc.Faculties.Add(mark);
错误:
"Entity of type Faculty in state Added has the following validation errors:"
...
"User name Peter is already taken."