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 に答える