2012-12-06 3 views
0

에 대한 내 쿼리 내가 for 루프를 사용하여 레코드를 보낼 LINQ 쿼리는 내부 루프

var currentUsrId = Convert.ToInt16(Membership.GetUser().ProviderUserKey); 
var Ids = Context.audits 
      .Where(i => i.usr_id == currentUsrId) 
      .Select(i => new 
       { 
         profile_id = i.profile_id 
       }).ToArray(); 

for (var m=0; m < (Ids.Length); m++) 
{ 
    var Query = Context.audits 
       .Where(j => j.usr_id == currentUsrId && j.profile_id == Convert.ToInt16(Ids[m].profile_id)) 
       .Select(j => j.profile_id).Count(); 

    var TotalQuery = Context.audits 
        .Where(i => i.usr_id == currentUsrId) 
        .Select(i => new 
        { 
         Id = currentUsrId, 
         count = Query 
        }).Distinct().ToArray(); 

    //return json(TotalQuery,JsonRequestBehavior.AllowGet); 
    ----strucked at this part----- 
} 

, 나는 이러한 값을 전송하는 방법에 strucked, 어떤 것을 좋아하고, 내가 루프 내부에 반환 JSON을 사용하는 경우, 루프는 한 번만

+0

음 그래,이 방법에서 반환하는 것입니다. 당신이 * 돌아오고 싶은 것이 확실하지 않습니다. 아마도 목록일까요? 각각의 반복에 대해 –

+0

배열이나 어떤 일에 그리고 루프 후 "TotalQuery"값을 추가해야합니다 return 문을 써야합니다. 값을 추가하려면 – charan

+1

나는'List '및 루프의 각 반복마다 그것을 추가 한 다음 * 루프 다음에 *를 반환합니다. LINQ와 관련해서는 * 아무것도 * 없다는 것에 유의하십시오. –

답변

0

이런 식으로 뭔가를 시도 실행 : 당신이 return 문이있는 경우

List<T> queries = new List<T>(); 

for (var m=0; m < (Ids.Length); m++) 
{ 
    var Query = Context.audits 
       .Where(j => j.usr_id == currentUsrId && j.profile_id == Convert.ToInt16(Ids[m].profile_id)) 
       .Select(j => j.profile_id).Count(); 

    var TotalQuery = Context.audits 
        .Where(i => i.usr_id == currentUsrId) 
        .Select(i => new 
        { 
         Id = currentUsrId, 
         count = Query 
        }).Distinct().ToArray(); 

    queries.add(TotalQuery); 
} 

return json(queries,JsonRequestBehavior.AllowGet);