Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menggunakan Linq di C # untuk memilih string tertentu dari beberapa kolom bersarang?

Pertama-tama, perbaiki modelnya sehingga koleksi memiliki nama jamak dan objek memiliki tunggal, jika tidak kode Anda akan menjadi sangat membingungkan:

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

Sekarang mari tambahkan beberapa properti lagi ke model sehingga dapat memberi tahu kita tentang intervensi:

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


Sekarang Anda bisa menanyakan sebuah bangunan apakah itu IsInIntervention dan itu akan menjawab ya jika itu benar atau jika ada sesuatu yang dimilikinya

Catatan:jika model belum dimuat dengan entitas maka Anda mungkin perlu menggunakan trik seperti ini:Linq inti EF dan conditional sertakan dan sertakan masalah untuk memuatnya secara kondisional



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa MySQL mengizinkan grup berdasarkan kueri TANPA fungsi agregat?

  2. Nomor urut yang dihasilkan secara otomatis mulai dari 001 ( HANYA UNTUK 3 DIGIT) - PHP / MYSQL

  3. Fungsi PHP SUM

  4. Cara menggabungkan tag serupa dalam XML

  5. PDO bindParam menjadi satu pernyataan?