Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để sử dụng Linq trong C # để chọn một chuỗi cụ thể từ nhiều cột lồng nhau?

Đầu tiên, hãy sửa mô hình để các bộ sưu tập có tên số nhiều và các đối tượng có tên đơn lẻ, nếu không mã của bạn sẽ trở nên rất lộn xộn:

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

Bây giờ, hãy thêm một số thuộc tính khác vào mô hình để nó có thể cho chúng tôi biết về các biện pháp can thiệp:

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


Bây giờ bạn chỉ có thể hỏi một tòa nhà xem nó có phải là IsInIntervention hay không và nó sẽ trả lời là có nếu nó có hoặc nếu nó sở hữu bất cứ thứ gì

Lưu ý:nếu mô hình chưa được tải với các thực thể thì bạn có thể cần phải sử dụng một thủ thuật như sau: EF Core linq và sự cố bao gồm và theninclude có điều kiện để tải chúng có điều kiện



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả về kết quả mặc định cho giá trị IN bất kể

  2. RSA trong Android tạo ra các khóa đúng nhưng giải mã sai

  3. Khi nào thì thêm chỉ mục nào vào bảng trong Rails

  4. Làm thế nào để tạo một lớp mở rộng mysqli thích hợp với các câu lệnh đã chuẩn bị?

  5. Làm thế nào để cập nhật trường để thêm giá trị vào giá trị hiện có?