首先在 EF 代码中为扩展模型 Classes 创建一个 Class

Create a Class for extend Model Classes in EF code first

我有一个模型 class,它在我的数据库中有例如 3 个属性和相应的 table。

public partial class Person
{
    public string prop1 {set; get;}
    public string prop2 {set; get;}
    public string prop3 {set; get;}
}

现在我想要派生 属性,例如使用 prop1prop3 创建:

prop4 = prop1 + prop3;

我想将 Person 扩展为 prop4。我为 Person 创建了部分 class 以具有 prop4:

public partial class Person
{
     public string prop4 {set; get;}
}

但是当我 运行 应用程序时我得到了这个错误:

Invalid column name 'prop4'

我把上面的class改成这样:

public class PersonViewModel : Person
{
    public string prop4 { get; set; }
}

Invalid column name 'Discriminator'.\r\nInvalid column name 'Discriminator'.\r\nInvalid column name 'Discriminator'.\r\nInvalid column name 'prop4'

但是如果我像这样创建一个 class 一切都很好:

public class PersonViewModel
{
    public string prop1 {set; get;}
    public string prop2 {set; get;}
    public string prop3 {set; get;}
    public string prop4 {set; get;}
}

但使用此解决方案我应该重写 ViewModel classes 中的所有属性。还有其他方法吗?

谢谢

使用 NotMapped 属性或流畅的 API 忽略方法 Ignoring a class property in Entity Framework 4.1 Code First