2012-12-02 3 views
0

아래는 제 bindingSource입니다.BindingSource LINQ에서 부동산 가치를 얻으십시오

pics_Data_HistoryBSForCounts.DataSource = from dh in dataCtx.Pics_Data_Histories 
                 join ui in dataCtx.User_Infos on dh.User_Id equals ui.user_id into ui_dh 
                 from ui_dh1 in ui_dh.DefaultIfEmpty() 
                 where dh.Changed_Date >= fromDate && dh.Changed_Date <= toDate 
                 group ui_dh1 by ui_dh1.user_name into grouped 
                 select new { UserName = grouped.Key.Trim(), Count = grouped.Count(a => a.user_name != null), UserID = grouped.FirstOrDefault().user_id }; 

현재 레코드의 UserID를 가져오고 싶습니다.

var userRecord = pics_Data_HistoryBSForCounts.Current; 

현재 레코드를 문자열로 가져옵니다. 속성 값을 가져올 방법이 있습니까?

감사합니다.

답변

0

BindingSource.Currentobject입니다. IQueryable<T> (dataCtx.Pics_Data_Histories)의 T 자로 캐스팅 할 수 있습니다. 하지만 익명 형식이므로 명명 된 형식을 사용하는 것이 더 쉽습니다. 그렇지 않으면 Reflection을 사용하여 속성 값을 추출 할 수 있습니다.

따라서 (UserName, CountUserID) 클래스가 있다고 가정합니다. 쿼리의 select 부분은 다음과 같습니다

select new UserData { UserName = grouped.Key.Trim(), ... 

그리고 캐스트 :

var userRecord = (UserData)pics_Data_HistoryBSForCounts.Current; 
관련 문제