Хорошо, вот ответ.
Хитрость в том, что автоматически генерируемые классы являются частичными классами.Процесс компиляции объединит все частичные классы с одинаковыми именами.
Если у нас есть public partial class Concept
, сгенерированный DbContext
, все, что нам нужно сделать, это создать еще один, начатый с public partial class Concept
.Этот новый частичный класс может быть создан в другой папке, но нам нужно, чтобы его пространство имен было обновлено так же, как автоматически сгенерированный частичный класс.
В этот вновь созданный частичный класс мы можем добавить все видыаннотаций данных, таких как
[Required(ErrorMesssage="This Field is required")]
Или мы можем даже добавить новые свойства, такие как
FullName {get {return string.Format("{0} {1}", FirstName, LastName);}}
Если модель снова обновляется из базы данных, только автоматически сгенерированные частичные классыбудет обновлено.Те недавно добавленные частичные классы, которые содержат наши аннотации и другие манипуляции, останутся без изменений.