sql >> データベース >  >> RDS >> Mysql

C#でLinqを使用して、ネストされた複数の列から特定の文字列を選択するにはどうすればよいですか?

    まず、コレクションに複数の名前があり、オブジェクトに単一の名前が付いているようにモデルを修正してください。そうしないと、コードが非常に混乱します。

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

    これで、建物にIsInInterventionかどうかを尋ねることができ、建物がIsInInterventionであるかどうか、または建物が所有しているものであるかどうかを「はい」と表示します。

    注:モデルにエンティティが読み込まれていない場合は、次のようなトリックを使用する必要があります: EFCorelinqおよび条件付きインクルードおよびtheninclude問題 条件付きでロードする



    1. SQL ServerのCOUNT()とCOUNT_BIG():違いは何ですか?

    2. JavaScriptはMySQLと接続できますか?

    3. SQL Serverのすべてのデータベースのすべてのテーブルを単一の結果セットに一覧表示するにはどうすればよいですか?

    4. Hibernate 4とPostgres:テーブルごとにシーケンスを作成する方法は?