Hogyan alakítható át ez az SQL kifejezés LINQ-ba?
A következő SQL kifejezést szeretném átalakítani LINQ-ba. A lényeg,hogy az összes kijelölt receptből összesítve vegye ki az alapanyagokat (alapanyag és mértékegység szerint). Tehát ha az egyik ételhez kell 20g só, egy másikhoz 30g, egy harmadikhoz pedig 5 dkg, akkor ez nekem 50g só és 5 dkg sóként jelenjen meg. Az SQL kifejezésem ez:
SELECT CONVERT(varchar, SUM(Receptek.Mennyiseg)) + ' ' + Mertekegysegek.Mertekegyseg + ' ' + Hozzavalok.Hozzavalo AS Expr1
FROM Fogasok INNER JOIN
Receptek ON Fogasok.FogasID = Receptek.FogasID INNER JOIN
Hozzavalok ON Receptek.HozzavaloID = Hozzavalok.HozzavaloID INNER JOIN
Mertekegysegek ON Receptek.MertekegysegID = Mertekegysegek.MertekegysegID
GROUP BY Hozzavalok.Hozzavalo, Mertekegysegek.Mertekegyseg
ORDER BY Hozzavalok.Hozzavalo
Amit pedig összehoztam LINQ-ban, az ez. Az alapanyagokat itt egy recepten belül összesíteni tudja, de az összes receptből nem. Hol lehet a hiba?
var hozzávalók = (from r in db.Receptek
join h in db.Hozzavalok on r.HozzavaloID equals h.HozzavaloID into csoport1
from cs1 in csoport1.DefaultIfEmpty()
join m in db.Mertekegysegek on r.MertekegysegID equals m.MertekegysegID into csoport2
from cs2 in csoport2.DefaultIfEmpty()
where hetiMenüLista.Contains(r.FogasID)
group r by new { anyagnev = cs1.Hozzavalo, mértékegység = cs2.Mertekegyseg, mennyiség = r.Mennyiseg } into g
select new
{
Elnevezés = g.Key.mennyiség == null ? g.Key.anyagnev : SqlFunctions.StringConvert(g.Sum(r => r.Mennyiseg)).Trim() + " " + g.Key.mértékegység + " " + g.Key.anyagnev
}).ToList();
Te lehetsz az első, aki segít a kérdezőnek!
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!