Comment convertir cette instruction SQL en LINQ, plus efficace?Ce SQL à LINQ
SELECT categoryName,
(SELECT COUNT(*) cnt
FROM itemCategories
WHERE (categories.categoryId = itemCategories.categoryId)
AND (Items.countryPartId = 1)) AS cnt
FROM categories, Items
Ceci est la requête LINQ j'ai en ce moment:
var q =
from c in context.categories
select new CategoryCount
{
CategoryName = c.categoryName,
Counter = (
from i in context.itemCategories
where c.categoryId == i.categoryId
select i).Count()
};
c'est la clause LINQ sans ET dans la clause WHERE: var q = (de c dans context.categories \t sélectionnez Nouveau CategoryCount \t { \t CategoryName = c.categoryName, Compteur = (de i dans context.itemCategories où c.categoryId == i.categoryId sélectionnez i) .Count() }); – danielovich
Nous ne sommes pas ici pour écrire votre programme, nous montrer ce que vous avez déjà trouvé et nous serons heureux de l'améliorer. – Steven
Et qu'est-ce que votre requête SQL est censée faire. Je vois que vous faites une jointure croisée sur 'categories' et' items'. Cela vous permettra d'obtenir N fois où 'N est le nombre d'éléments. Est-ce vraiment ce que tu veux? – Steven