我有一个名为FighterModel
的对象,在我的存储库服务中,我从SQL Server获取属性。
public class FighterModel
{
public int Id { get; set; }
public string Name { get; set; }
public int QtyMartialArts { get; set; }
public int QtyDefeats { get; set; }
public int QtyVictories { get; set; }
[NotMapped]
public int QtyFights { get; set; }
}
我希望QtyFights
是QtyVictories
和QtyDefeats
之和,在从实体获取数据后,我如何才能做到这一点?
我尝试在构造函数中执行函数和设置,但它不起作用。
public class FighterModel
{
public FighterModel()
{
AtualizaLutas();
}
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public int QtyMartialArts { get; set; }
[NotMapped]
public int QtyFights { get; set; }
public int QtyDefeats { get; set; }
public int QtyVictories { get; set; }
private void AtualizaLutas()
{
QtyFights = QtyVictories + QtyDefeats;
}
}
3条答案
按热度按时间mqkwyuun1#
如果你不需要设置QtyFights的值,你可以直接执行
vatpfxk52#
您可以尝试使用私有getter来代替函数
通过指定字段的访问级别、属性的类型、属性的名称以及声明get访问器和/或set访问器的代码块,在类块中声明属性。
Read more
Here
编辑:但是如果你想用一个函数来覆盖。
如果你使它成为公共的和虚拟的,你可以让调用者用他们想要的东西覆盖这个函数。
dldeef673#
它在构造函数中不起作用,因为属性绑定是在创建示例之后完成的。您正在尝试对“整数”类型的“QtyVictories”和“QtyDefeats”的默认值求和,该值等于零(0)。这意味着,QtyFights值始终保持为零(0)。
仅声明属性只有getter,如下所示: