ASP MVC код сначала создает вычисляемый первичный ключ
Я использую code first
в asp mvc
и я столкнулся с ситуацией, когда мне нужно иметь модель / таблицу с вычисленным первичным ключом, например:
public class Student
{
[Key]
public string StudentNumber { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime RegistrationDate { get; set; }
}
Так есть ли способ сделать StudentNumber
вычисляется, например, взяв 1-ю букву LastName
, год регистрации и autoincrement
число?
1 ответ
Решение
Из соображений производительности вы действительно не хотите, чтобы ваш первичный ключ был в виде строки, поэтому спросите, откуда это требование. Тем не мение:
[Key]
public int Id { get; set; }
[NotMapped]
public string StudentId
{
get
{
return string.Format("{0}{1}{2}",
this.LastName.Substring(0, 1),
this.RegistrationDate.Year,
this.Id);
}
}