सबसे पहले, कृपया मॉडल को ठीक करें ताकि संग्रहों में बहुवचन नाम हों और ऑब्जेक्ट एकल हों, अन्यथा आपका कोड बहुत भ्रमित हो जाएगा:
building.cs
public List<Battery> Batteries { get; set; }
battery.cs
public long BuildingId { get; set; }
public Building Building { get; set; }
public List<Column> Columns { get; set; }
column.cs
public long BatteryId { get; set; }
public Battery Battery { get; set; }
public List<Elevator> Elevators { get; set; }
elevator.cs
public long ColumnId { get; set; }
public Column Columns { get; set; }
अब मॉडल में कुछ और गुण जोड़ते हैं ताकि यह हमें हस्तक्षेपों के बारे में बता सके:
building.cs
public List<Battery> Batteries { get; set; }
[NotMapped]
public bool IsInIntervention => this.Status == "Intervention" || Batteries.Any(b => b.IsInIntervention);
battery.cs
public long BuildingId { get; set; }
public Building Building { get; set; }
public List<Column> Columns { get; set; }
[NotMapped]
public bool IsInIntervention => this.Status == "Intervention" || Columns.Any(c => c.IsInIntervention);
column.cs
public long BatteryId { get; set; }
public Battery Battery { get; set; }
public List<Elevator> Elevators { get; set; }
[NotMapped]
public bool IsInIntervention => this.Status == "Intervention" || Elevators.Any(e => e.IsInIntervention);
elevator.cs
public long ColumnId { get; set; }
public Column Column { get; set; }
[NotMapped]
public bool IsInIntervention => this.Status == "Intervention";
अब आप बस एक इमारत से पूछ सकते हैं कि क्या यह इनइंटरवेंशन है और यह कहेगा कि हाँ अगर यह है या यदि इसका स्वामित्व है तो यह है
नोट:यदि मॉडल को इकाइयों के साथ लोड नहीं किया गया है तो आपको इस तरह की एक चाल को नियोजित करने की आवश्यकता हो सकती है:EF कोर लिंक और कंडीशनल शामिल करें और फिर समस्या शामिल करें सशर्त रूप से उन्हें लोड करने के लिए