Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвате Linq в C#, за да изберете конкретен низ от множество вложени колони?

Първо, моля, коригирайте модела, така че колекциите да имат имена в множествено число, а обектите – единични, в противен случай кодът ви ще бъде много объркан:

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";


Сега можете просто да попитате дадена сграда дали е InIntervention и тя ще каже „да“, ако е или дали нещо, което притежава, е

Забележка:ако моделът не е зареден с обекти, тогава може да се наложи да използвате трик като този:Проблем с EF Core linq и условно включване и тогававключване за условно зареждане



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да актуализирате mysql с php при изваждане

  2. MYSQL Datetime, премахнете секундите

  3. Стойности, повтарящи се при попълване на JTable

  4. MYSQL тригери:JSON_SEARCH целочислена стойност в json масив от цели числа

  5. MySQL автоматично увеличаване на персонализираните стойности