简体   繁体   中英

Translating Entity Framework query to SQL

I have entity framework query:

var query = ctx.v_mp_akt
 .SelectMany(d => ctx.v_ma_akt  , (a, b) => new {a, b})
 .Where(x => x.b.MA_ID == x.a.MA_ID)
 .SelectMany(y => ctx.v_os_akt, (g, h) => new {g, h})
 .Where(y => y.h.OS_ID == y.g.a.MP_FK_OS_ID_KOMU_WYDANO)
 .Select(x=> new
 {
  x.g.b.KT_ETYKIETA,
  x.g.a.MA_LP,
  x.g.b.MA_DATA_REJESTRACJI,
  x.g.b.MA_INF_O_ZMIANIE_KLAUZULI,
  x.g.a.MP_NR_RTD_TECZKI,
  x.h.OS_ETYKIETA,
  x.g.a.MP_FK_KO_ID_WLASCICIEL_MP,
  x.g.a.JR_NAZWA
 });

I'm not sure how to translate this query into pure MySQL query code. I'm not very good in MySQL syntax.

This causes syntax error:

select 
       b.KT_ETYKIETA, 
       a.MA_LP, 
       b.MA_DATA_REJESTRACJI, 
       b.MA_INF_O_ZMIANIE_KLAUZULI, 
       a.MP_NR_RTD_TECZKI, 
       h.OS_ETYKIETA, 
       a.MP_FK_KO_ID_WLASCICIEL_MP, 
       a.JR_NAZWA
from
       v_ma_akt b  where b.MA_ID = a.MA_ID,
       v_os_akt h where h.OS_ID = a.MP_FK_OS_ID_KOMU_WYDANO,
       v_mp_akt a

Can you provide any tips how correct MySQL should look like?

Use EF to show you the SQL generated. Try:

query.ToTraceString();
select 
       b.KT_ETYKIETA, 
       a.MA_LP, 
       b.MA_DATA_REJESTRACJI, 
       b.MA_INF_O_ZMIANIE_KLAUZULI, 
       a.MP_NR_RTD_TECZKI, 
       h.OS_ETYKIETA, 
       a.MP_FK_KO_ID_WLASCICIEL_MP, 
       a.JR_NAZWA
from v_mp_akt a
     INNER JOIN v_ma_akt b  ON b.MA_ID = a.MA_ID
     INNER JOIN v_os_akt h ON h.OS_ID = a.MP_FK_OS_ID_KOMU_WYDANO

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM