gpt4 book ai didi

c# - 如何覆盖基类字段功能?

转载 作者:太空狗 更新时间:2023-10-30 01:02:30 26 4
gpt4 key购买 nike

好吧,我有BaseModel

public class BaseModel
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public bool Deleted { get; set; }
}

我还有模型更新

public class Update : BaseModel
{
public DateTime Updated { get; set; }
}

派生自 BaseModelBaseModel 中,Id 字段没有增加,但是对于 Update 模型,我需要 IdIdentity

我可以向 Update 添加新字段,例如 UpdateId,它将递增,但删除字段 Id 吗?


有可能的解决方案吗? :

用下一种方式声明模型怎么样

public class BaseModel
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public bool Deleted { get; set; }
}

public class Update : BaseModel
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public DateTime Updated { get; set; }
}
Update 中的

Id 将覆盖 BaseModel

中的 Id

最佳答案

您可以使用以下技术(在 Windows 窗体控件中大量使用,以将不同的属性应用于同一个属性):

public class BaseModel
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public virtual int Id { get; set; }
public bool Deleted { get; set; }
}

public class Update : BaseModel
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public override int Id { get { return base.Id; } set { base.Id = value; } }
public DateTime Updated { get; set; }
}

关于c# - 如何覆盖基类字段功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33692342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com