sql >> Database >  >> RDS >> Mysql

Hoe gebruik ik Linq in C# om een ​​specifieke string te selecteren uit meerdere geneste kolommen?

Pas eerst het model aan zodat collecties meervoudige namen hebben en objecten enkelvoudig, anders wordt je code erg verward:

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

Laten we nu wat meer eigenschappen aan het model toevoegen, zodat het ons iets kan vertellen over interventies:

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 kun je een gebouw gewoon vragen of het IsInIntervention is en het zal ja zeggen als het dat is of als iets dat het bezit is

Opmerking:als het model niet is geladen met entiteiten, moet u mogelijk een truc als deze gebruiken:EF Core linq en conditional include en theninclude probleem om ze voorwaardelijk te laden



  1. Taal voor SQL-gegevensdefinitie

  2. Hoe kan ik voorwaardelijk een tabelnaam construeren voor een SQL CREATE TABLE-instructie?

  3. Geparametriseerde query die TEXT-kolom(men) retourneert, retourneert altijd nul voor INT-kolommen

  4. Datums effectief converteren tussen UTC en lokale (dwz PST) tijd in SQL 2005