【发布时间】:2014-07-07 17:54:01
【问题描述】:
我使用 ADO.NET 实体数据模型创建了一个带有 EF db-first 的 MVC 4 应用程序。
我之前一直在将数据验证和更新构造函数直接添加到生成的模型类中,但是我预见到这些表将被更新,我不想将这些都添加回来,而且我不应该这样做无论如何编辑这些自动生成的类。
使用来自http://www.asp.net/mvc/tutorials/mvc-5/database-first-development/enhancing-data-validation 的 Metadata.cs 和 PartialClasses.cs 我不确定更新这些模型类的默认构造函数的最佳方法。
这是一个简化的示例模型。 .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 [错误,因为生成的 Modal 类定义了默认构造函数]
[MetadataType(typeof(CampaignMetadata))]
public partial class Campaign
{
public Campaign()
{
this.Fees = new HashSet<Fee>();
// Non-Generated
this.CreatedOnDate = DateTime.Now;
}
}
我有其他模型我也想有其他具有不同参数的构造函数,所以为了简化我的问题,我在哪里为 DB first MVC 添加构造函数以不更新生成的模型类?
【问题讨论】:
-
您可以将验证应用于您的视图模型 - 与应用于数据模型实体的概念相同。
标签: c# asp.net-mvc-4 default-constructor ef-database-first validation