EF Core是否提供一种将仅获取属性映射到数据库的方法

时间:2018-09-07 19:31:43

标签: ef-core-2.1

我有一个客户对象,该客户对象具有一个要存储到数据库中的计算值Fullname,但是不希望/不需要它从数据库返回,因为它是从其他字段计算出来的。

public class Client
{
   public int Id {get; set;}
   public string Firstname {get; set;}
   public string Middlename {get; set;}
   public string Lastname {get; set;}

   public string Fullname => this.FormatName(NameFormats.LastFirst);
}

在这种情况下,我希望在数据库中使用它,以便报表用户可以使用全名进行打印/列出,而无需进行计算。但是我不需要将其带回到我的域模型中,因为它们始终是根据已经从数据库中引入的FirstnameLastname计算出来的。

是否可以在具有EF Core的实体上定义“仅存储到数据库”属性?

1 个答案:

答案 0 :(得分:1)

EF GitHub团队的解决方案如下:

  

我们在#7946中讨论了此问题,并决定在这种情况下使用空的setter是合理的。例如:

public string Fullname
{
    get => $"{this.Lastname}, {this.Firstname}";
    private set { }
}