Эквивалентный код LINQ to SQL - PullRequest
2 голосов
/ 09 июня 2009

Я новичок в этом, вот мой T-SQL

SELECT category.id, category.name,COUNT(job.id) AS countofjobs 
FROM category 
LEFT OUTER JOIN job ON category.id = job.categoryid AND job.active=1 
WHERE category.featured=1 
GROUP BY category.id, category.name
ORDER BY category.name

что будет эквивалентным кодом LINQ to SQL? любая помощь будет оценена

Извините, я забыл упомянуть, что нет базы данных отношений, у таблиц вообще нет никакой связи, определенной в db, вот основная проблема, это просто пример sql, чтобы увидеть, как я могу написать Link to SQL для T-SQL для чего требуется: левое внешнее соединение, количество записей таблицы внешних соединений и сортировка

Ответы [ 2 ]

5 голосов
/ 09 июня 2009
var result = dataContext.Categories
                  .Where(c => c.Featured)
                  .OrderBy(c => c.Name)
                  .Select(c => new { c.Id, 
                                     c.Name, 
                                     CountOfJobs = c.Jobs.Count(j => j.Active) };

В качестве альтернативы:

var result = from c in dataContext.Categories
             where c.Featured
             orderby c.Name
             select new { c.Id, c.Name, CountOfJobs = c.Jobs.Count(j => j.Active) };
1 голос
/ 09 июня 2009

Поскольку у вас нет отношений:

var result = from c in dataContext.Categories
             where c.Featured
             orderby c.Name
             select new {
                 c.Id,
                 c.Name,
                 CountOfJobs = dataContext.Jobs.Count(j => j.categoryId == c.Id && j.Active)
             };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...