sql >> Databasteknik >  >> RDS >> Mysql

Hur använder man Linq i C# för att välja en specifik sträng från flera kapslade kolumner?

Först och främst, fixa modellen så att samlingar har pluralnamn och objekt har singel, annars kommer din kod att bli mycket förvirrad:

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

Låt oss nu lägga till några fler egenskaper till modellen så att den kan berätta om interventioner:

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


Nu kan du bara fråga en byggnad om det är InIntervention och det kommer att säga ja om det är det eller om något den äger är

Obs:om modellen inte har laddats med entiteter kan du behöva använda ett trick som detta:EF Core linq och conditional include and theninclude-problem för att villkorligt ladda dem



  1. Hur man definierar ett osignerat heltal i SQLAlchemy

  2. Hur man inkluderar NULL-värden i en fråga med Outer Join och Group By

  3. PHP 7 kan inte hitta MySQLi

  4. MySQL:kontrollera om ett värde finns i ett intervallintervall