Mysql
 sql >> Baza danych >  >> RDS >> Mysql

NHibernate QueryOver i MYSQL

Spodziewałbym się, że jest to jednokierunkowe wiązanie (tylko do czytania). W tym scenariuszu możesz skorzystać z projekcji. zobacz więcej tutaj 16.6. Projekcje

Możesz utworzyć jakiś obiekt DTO dla swojej siatki i podobny do dokumentacji:

CatSummary summaryDto = null;
IList<CatSummary> catReport =
    session.QueryOver<Cat>()
        .SelectList(list => list
            .SelectGroup(c => c.Name).WithAlias(() => summaryDto.Name)
            .SelectAvg(c => c.Age).WithAlias(() => summaryDto.AverageAge))
        .TransformUsing(Transformers.AliasToBean<CatSummary>())
        .List<CatSummary>();

Powinieneś być w stanie to zrobić w ten sposób (nie mogę tego teraz sprawdzić, ale powinno być jasne)

LietadloDTO lietadloDTO = null;
dgv.DataSource = session
  .QueryOver<Lietadlo>(() => f)
  .JoinAlias(() => f.Spolocnostt_Id,() => t)
  .JoinAlias(() => f.Typp_Id, ()=> r)
  .Where(() => t.Pocetlietadiel > 2)
  .And(() => r.Name == "Boeing-747")
  .SelectList(list => list
    .Select(f => f.Id).WithAlias(() => lietadloDTO.Id)
    .Select(t => t.Name).WithAlias(() => lietadloDTO.Name)
    ...
    )
  .TransformUsing(Transformers.AliasToBean<LietadloDTO>())
  .List<LietadloDTO>()
  .ToList<LietadloDTO>();

Tak więc w tym przypadku zmusisz NHibernate do utworzenia projekcji (tylko 1 klauzula SELECT) i zwrócenia wszystkich potrzebnych danych naraz




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najlepszy sposób zwracania wartości wyliczenia w MySQL?

  2. Nie powiodło się wykonanie echosondy (ubuntu):com.mysql.jdbc.Driver

  3. Funkcje ciągów MySQL (pełna lista)

  4. Czy jest jakiś uzasadniony powód do używania gniazd Unix przez TCP/IP z mysql?

  5. Projekt bazy danych do tworzenia aplikacji internetowych „Quiz” przy użyciu PHP i MySQL