实体框架-LINQ的SQL命令

本文关键字:SQL 命令 -LINQ 框架 实体 | 更新日期: 2023-09-27 17:59:38

我无法将此SQL命令转换为LINQ

SELECT tarif.*, prirazeni.Nazev
FROM `tarif`
INNER JOIN prirazeni
ON tarif.intern_id = prirazeni.intern_id
WHERE tarif.id_pojistovna = 'xx' AND cena IS NOT NULL AND prirazeni.nazev = 'yyyy'
GROUP BY id_vstupni_zdroj

我的LINQ:

var total = (from tarif in context.Tarifs
             join prirazeni in context.Prirazenis on tarif.Intern_id equals prirazeni.Intern_id into joined
             from Join in joined
             where tarif.Id_pojistovna == idPojistovna && Join.Nazev == nazev && tarif.Cena != null && tarif.Id_vstupni_zdroj != idVstupniZdroj 
             group tarif by tarif.Id_vstupni_zdroj into tarifGrouped
             from grouped in tarifGrouped
             select grouped
             ).ToList();

在MySQL上,Adminer可以很好地执行SQL命令,但LINQ会返回所有行。

怎么了?

实体框架-LINQ的SQL命令

我认为您有额外的into命令试试这个。

var total = (from tarif in context.Tarifs
             join prirazeni in context.Prirazenis on tarif.Intern_id equals prirazeni.Intern_id
             where tarif.Id_pojistovna == idPojistovna && prirazeni.Nazev == nazev && tarif.Cena != null && tarif.Id_vstupni_zdroj != idVstupniZdroj
             group by tarif.Id_vstupni_zdroj
             select new {tarif, prirazeni}).ToList();