0
//\\ ---- selected items from ChechBoxList
IEnumerable<int> selSender = (from ListItem item in CheckBoxList1.Items.OfType<ListItem>()
                                       where item.Selected
                                       select Convert.ToInt32(item.Value));

//\\ --- linq query
var messages = from m in myEntities.Messages
select new {
m.Id,
m.MessageText,
m.CreatedByUserID
};

我的问题是:我需要从 CheckBoxList“selSender”中获取按选定项目过滤的数据我尝试了以下操作:

 RadGrid1.DataSource = messages.Where(m => selSender.Contains(m.CreatedByUserID));

但它不起作用,错误消息:

实例参数:无法从 'System.Collections.Generic.IEnumerable' 转换为 'System.Linq.IQueryable

如何根据 selSender id 获取包含的数据?

4

1 回答 1

0

看起来属性CreatedByUserID的类型为Nullable<int>. 您需要使用它的值来验证 selSender 是否包含它:

RadGrid1.DataSource = from m in myEntities.Messages                          
                      where m.CreatedByUserID.HasValue &&
                            selSender.Contains(m.CreatedByUserID.Value)
                      select new { 
                          m.Id,
                          m.MessageText,
                          m.CreatedByUserID 
                      };
于 2012-12-28T09:15:04.730 回答