У меня есть таблицапомощь с Linq запрос
идентификатор pagenane имя пользователя
я хочу этот запрос будет
выберите ИмяСтраницы, граф (*), как NUM из pagestat, где имя пользователя = 'name' group by pagename
Как я могу это сделать linq?
У меня есть таблицапомощь с Linq запрос
идентификатор pagenane имя пользователя
я хочу этот запрос будет
выберите ИмяСтраницы, граф (*), как NUM из pagestat, где имя пользователя = 'name' group by pagename
Как я могу это сделать linq?
Ну, попробуйте это:
var query = from row in context.pageStat
where row.UserName == "name"
group row by row.PageName into g
select new { PageName = g.Key, Count = g.Count() };
var retVal = (from s in dataContext.YourTable where
s.UserName.Equals("name")
group s by s.PageName into k
select new {PageName = k.Key, Count = k.Count() }).ToList();
'' 'не будет в области действия' select'. В этот момент вы имеете дело с * группами *, а не с отдельной записью. К счастью, вы можете использовать ключ группы. –
Спасибо, Джон, я буду осторожен, исправляю сейчас. –
, как я могу вернуть это значение из функции? что-то вроде return query.ToList(); но это анонимный тип – kusanagi
@kusanagi: Если вы используете .NET 4, вы можете использовать кортежи; иначе вы могли бы просто создать свой собственный именованный тип с именем pagename и считаться как свойства ... в основном именованная версия анонимного типа. –
Обратите внимание, что 'row.UserName ==" name "' будет чувствительным к регистру. Возможно, не то, что вы хотите для имени пользователя, и (в зависимости от сортировки БД), возможно, не того, что сделал исходный SQL-запрос. Используйте 'row.UserName.Equals (" name ", StringComparison.OrdinalIgnoreCase)' для нечувствительного сравнения; он поддерживается как в L2S, так и в L2E. –