父类中的属性 - 可以更改子类中的属性名称吗?

VSO*_*VSO 4 c# entity-framework

我正在修改现有代码。我们有一个基类,从它继承了大约 10 个类。基类有public long Id { get; set; }. 现在是提到子类都是实体框架模型的好时机,因此 Id 成为自动生成的主键。

我现在需要添加具有一对一关系的表。我正在考虑覆盖“Id”的方法,但似乎没有任何东西 - 无论是抽象的还是虚拟的都不能让您更改名称。

是我唯一的选择是完全删除 Id 属性并在每个单独的子类中单独实现它,假设我希望选择将其重命名为SomethingId(“Something”是一对一表的PK)。

Sam*_*Axe 5

如果您想重命名子类中的某些内容,您可以...

public class Child : Parent {

    public ChildID { 
        get { return base.Id; }
        set { base.Id = value; }
    }

}
Run Code Online (Sandbox Code Playgroud)

如果你想隐藏它,你可能需要覆盖 Id 属性,或者应用像[NotMapped].