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);
    }
}
Другие вопросы по тегам