假设我通过 Entity Framework 创建了一些模型,其中之一称为 Paper_Results。这是该类的外观:
public partial class Paper_Results
{
public string Color { get; set; }
public int Height { get; set; }
public int Width { get; set; }
}
我想像使用域模型一样使用这个类。现在假设我创建了一个派生自 Paper_Results 并添加了接口的类
public class Construction_Paper : Paper_Results, IMeasurementType
{
[Required]
public (new?) string Color { get; set; }
[Required]
[Range(1, Int32.MaxValue, ErrorMessage = "Value should be greater than or equal to 1")]
public (new?) int Height { get; set; }
[Required]
[Range(1, Int32.MaxValue, ErrorMessage = "Value should be greater than or equal to 1")]
public (new?) int Width { get; set; }
public virtual string MeasurementType
{
get { return "inches"; }
}
}
现在,当我创建 ViewModel 时,我将使用派生类:
public class Construction_Paper_ViewModel
{
Construction_Paper cp;
List<Construction_Paper> cpList;
string title;
public Construction_Paper_ViewModel()
{
title = "Construction Paper";
cp = new Construction_Paper();
cpList = new List<Construction_Paper>();
}
}
我知道我应该对非负整数使用 uint 而不是 int,但我只是想在代码中添加更多数据注释。我要问的是从 Paper_Result 类派生的最佳 OOP 技术是什么,这样我根本不需要修改它。原因是如果我创建一个新的解决方案和/或项目,我不想在使用 Entity Framework 自动重新生成它时对其进行任何修改。我应该使用阴影吗?还是派生类中的new关键字?或者你们还有其他更好的想法吗?
自动生成的 EF 模型在其方法中不包含“虚拟”,这就是我提出阴影和新关键字的原因。