在ViewModel

时间:2018-02-20 12:05:23

标签: asp.net-core-mvc entity-framework-core razor-pages

使用模型

public class Person {
    public string Forename { get; set; }
    public string Surname  { get; set; }
    public string DOB      { get; set; }
}

我有一个ViewModel,我将把它传递给View

public class PersonViewModel {
    public IQueryable<Person> PersonVM { get; set; }
    public string sometext{ get; set; }
}

例如,如果我想计算控制器代码中的年龄并将其存储在Person中的每个IQueryable行,那么可以在视图中看到,最好的方法是什么?在每行添加Age属性?

我猜我不必在Person模型中包含假属性

    public string Age      { get; set; }

2 个答案:

答案 0 :(得分:1)

您可以使用NotMapped属性,该属性将从数据库映射中排除该属性。

public class Person
{
    public string Forename { get; set; }
    public string Surname { get; set; }
    public string DOB { get; set; }
    [NotMapped]
    public string Age { get; set; }
}

答案 1 :(得分:1)

您可以设置Age属性set private并在get中编写逻辑以在运行时计算它。

public class Person {
  public string Forename { get; set; }
  public string Surname  { get; set; }
  public string DOB      { get; set; }
  public string Age {
                      get{
                            //.... you logic
                      }
                      private set{}

}