내가이 테이블도움
내가이 SQL 쿼리를
선택 페이지 이름을 원하는
는, pagestat에서 납입로 (*) 계산 아이디 pagenane 사용자 이름 여기서 사용자 이름 = 표제어의 '이름'그룹
나는 linq로 할 수 있습니까?
내가이 테이블도움
내가이 SQL 쿼리를
선택 페이지 이름을 원하는
는, pagestat에서 납입로 (*) 계산 아이디 pagenane 사용자 이름 여기서 사용자 이름 = 표제어의 '이름'그룹
나는 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();
's'은'select' 절의 범위에 들어 가지 않습니다. 이 시점에서 개별 레코드가 아닌 * 그룹 *을 다루고 있습니다. 다행히 그룹의 키를 사용할 수 있습니다. –
Jon, 고맙습니다, 지금 고쳐 주셔서 감사합니다. –
어떻게 함수에서이 값을 반환 할 수 있습니다? return query.ToList()와 같은 것; 하지만 이것은 익명 형식입니다. – kusanagi
@kusanagi : .NET 4를 사용하는 경우 튜플을 사용할 수 있습니다. 그렇지 않으면 페이지 이름과 특성으로 계산 된 고유 한 형식을 만들 수 있습니다 ... 기본적으로 익명 형식의 명명 된 버전입니다. –
'row.UserName == "name"'은 대소 문자를 구분합니다. 아마도 사용자 이름에 대해 원하는 것이 아니며 (DB 데이터 정렬에 따라) 원본 SQL 쿼리의 결과가 아닐 수도 있습니다. 'row.UserName.Equals ("name", StringComparison.OrdinalIgnoreCase)'를 사용합니다. 그것은 L2S와 L2E 모두에서 지원됩니다. –