Я создал приложение MVC 4 с EF db-first, используя модель данных объекта ADO.NET.
Раньше я добавлял проверку данных и обновлял конструкторы непосредственно в сгенерированные классы моделей, но, поскольку я предполагаю, что эти таблицы будут обновлены, я не хочу добавлять их обратно, плюс я не должен редактировать эти автоматические сгенерированные классы в любом случае.
Использование Metadata.cs и PartialClasses.cs из http://www.asp.net/mvc/tutorials/mvc-5/database-first-development/enhancing-data-validation Я не уверен, что это лучший способ обновить конструкторы по умолчанию для этих классов моделей. .
Вот пример модели, упрощенный. Внутри .edmx
public partial class Campaign
{
public Campaign()
{
this.Fees = new HashSet<Fee>();
}
public int ID { get; set; }
public string Name { get; set; }
public string CreatedBy { get; set; }
public System.DateTime CreatedOnDate { get; set; }
public virtual ICollection<Fee> Fees { get; set; }
}
в ParticalClasses.cs [ошибки, поскольку сгенерированный модальный класс определяет конструктор по умолчанию]
[MetadataType(typeof(CampaignMetadata))]
public partial class Campaign
{
public Campaign()
{
this.Fees = new HashSet<Fee>();
// Non-Generated
this.CreatedOnDate = DateTime.Now;
}
}
У меня есть другие модели. Я также хотел бы иметь другие конструкторы с другими параметрами, поэтому, чтобы упростить мой вопрос, где я могу добавить конструкторы для DB первого MVC, чтобы не обновлять сгенерированные классы моделей?