Мне интересно, есть ли способ построить вложенную модель, в которой значение поля основной модели автоматически передается в назначенное поле ее вложенной модели.
Например, если у меня есть модель представления 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 является просто указателем на значение HasPower в Factory.
Я понятия не имею, достижимо это или нет. И поиск в Google не дает мне никакого полезного результата.





Вы можете переопределить геттер / сеттер своего свойства HasPower в классе Factory следующим образом:
public bool HasPower
{
get => Machines?.First().HasPower ?? false;
set
{
foreach(var machine in Machines)
machine.HasPower = value;
}
}
Кроме того, вы можете пометить свое свойство HasPower с помощью [DatabaseGenerated (DatabaseGeneratedOption.None)], если класс Factory является POCO Enity Framework, чтобы он всегда вычислялся.
Спасибо! Кажется, это работает! Раньше я не понимал, что это можно сделать с помощью get и set для свойства HasPower. Очень признателен.
Когда вы инициализируете свой фабричный класс и устанавливаете свойство списка машин, просто установите значение каждой машины равным фабрике.