自动更新Asp.Net Core中的所有嵌套类/模型属性

时间:2018-04-04 07:45:03

标签: c# asp.net asp.net-mvc asp.net-core

我想知道是否有一种构建嵌套模型的方法,其中主模型的字段值自动传递到其嵌套模型的指定字段。

例如,如果我有Factory视图模型和Machine视图模型:

public class Factory
{
    public string Name { get; set; }

    public bool HasPower { get; set; }

    public List<Machine> Machines { get; set; }
}

public class Machine
{
    public string Name { get; set; }

    public string Brand { get; set; }

    public bool HasPower { get; set; }
}

Factory包含Machine列表。我希望每个HasPower中的Machine值始终由HasPower中的Factory值设置。或者,每个HasPower中的Machine属性只是指向HasPowerFactory值的指针。

我不知道这是否可以实现。谷歌搜索并没有给我任何有用的结果。

1 个答案:

答案 0 :(得分:0)

您可以在Factory类中重新定义HasPower属性的getter / setter,如下所示:

public bool HasPower
{
    get => Machines?.First().HasPower ?? false;
    set
    {
      foreach(var machine in Machines)
           machine.HasPower = value;
    }

}

此外,如果Factory类是Enity Framework POCO,则可以使用[DatabaseGenerated(DatabaseGeneratedOption.None)]标记HasPower属性,以便始终计算它。