Intereting Posts

Оператор Case LINQ в Count

Можете ли вы помочь мне перевести этот sql в Linq, пожалуйста:

select count(case when t.TypeID = 1 then t.TypeID end) as a, count(case when t.TypeID = 2 then t.TypeID end) as b, count(case when t.TypeID = 3 then t.TypeID end) as c from myTable t 

Я обыскал в Интернете и нашел какой-то подобный sql, но ничего не подходит для этого сценария. Является ли это возможным?

благодаря

Я думаю, вам нужно что-то вроде этого

 var query = new { a = (context.MyTable.Where(t => t.TypeID == 1).Count(), b = (context.MyTable.Where(t => t.TypeID == 2).Count(), c = (context.MyTable.Where(t => t.TypeID == 3).Count(), } 

Изменить – если вы хотите все это в одном запросе, вы можете сделать это:

 var query = from x in context.MyTable group x by 1 into xg select new { a = xg.Where(t => t.TypeID == 1).Count(), b = xg.Where(t => t.TypeID == 2).Count(), c = xg.Where(t => t.TypeID == 3).Count(), };