ASP.NET MVC 的一个好的做法是将模型从数据库中分离出来,并将模型用于视图。在您的情况下,我们将有两个模型:EmployeeDTO 和 Employee。
public class EmployeeDTO
{
public int Id { get; set; }
public string Name { get; set; }
public int Salary { get; set; }
}
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public int Salary { get; set; }
public int AnnualSalary { get { return this.Salary * 12; } }
}
之后,在您的控制器上,您将 EmployeeDTO 映射到 Employee(以读取操作),并将 Employee 映射到 EmployeeDTO(以创建/更新操作)。例如,一个 Read 方法:
public ActionResult Read(int id)
{
EmployeeDTO employeeDTO = db.Employee.Find(id);
Employee employee = new Employee()
{
Id = employeeDTO.Id,
Name = employeeDTO.Name,
Salary = employeeDTO.Salary
};
return View(employee);
}
使用此方法,您可以为 EmployeeDTO 实现 DataAnnotations,它不会自动应用于 Employee(因此应用于您的视图),反之亦然。在您的情况下,您可以添加一个不影响数据库架构的新属性。
希望能帮助到你。