2010-01-07 57 views
1

我想这下面类返回的IList <> 请告诉我,为什么它不工作的IList查询

public IList<CheckBoxListInfo> GetLinks() 
     { 
      string linkName = string.Empty; 
      int linkId = 0; 
      using (var db = new brandconnectionsEntities()) 
      { 
       var query = from s in db.BC_TabTable 
               select new 
               { 

                linkName = s.TabName, 
                linkId = s.TabId, 
               }; 

       IList<CheckBoxListInfo> list = query.ToList() as IList<CheckBoxListInfo>; 

       return list; 

      } 
     } 

感谢 丽思

回答

5

你需要改变你的SELECT语句返回CheckBoxListInfo对象。

例如

select new CheckBoxListInfo 
{ 
    LinkName = s.TabName, 
    LinkId = s.TabId, 
}; 

此刻它正在返回一个匿名类型。

0

它不工作,因为现在您的查询返回该表达式定义一个匿名类型的序列:

select new 
{ 
    linkName = s.TabName, 
    linkId = s.TabId, 
}; 

相反,你需要在查询中选择一个新的CheckBoxListInfo,像这样的伪代码:

select new CheckBoxListInfo { LinkName = s.TabName, LinkId = s.TabId } 

(我不知道CheckBoxListInfo API的外观,所以因人而异

0
var query =(from s in db.BC_TabTable 
     select new CheckBoxListInfo 
     { 
      linkName= s.TabName, 
      linkId= s.TabId, 
     }).ToList();