在BindingSource LINQ中获取Property值

时间:2012-12-02 00:52:39

标签: c# .net linq datasource bindingsource

以下是我的bindingSource。

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;

我将当前记录作为字符串。有没有办法获得房产价值?

谢谢!

1 个答案:

答案 0 :(得分:0)

BindingSource.Currentobject。您可以将其强制转换为类型T IQueryable<T>(dataCtx.Pics_Data_Histories)。但这是一个匿名类型,因此更容易使用命名类型(否则您只能使用Reflection来提取属性值)。

因此,假设您有一个班级UserDataUserNameCountUserID)。查询的select部分是:

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

演员:

var userRecord = (UserData)pics_Data_HistoryBSForCounts.Current;