在Linq的MVC应用程序中的IList查询

时间:2010-01-07 12:36:32

标签: linq

我想在下面的课程中返回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;

            }
        }

由于 里兹

3 个答案:

答案 0 :(得分:5)

您需要更改select语句以返回CheckBoxListInfo对象。

e.g。

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

目前它正在返回一个匿名类型。

答案 1 :(得分:0)

它不起作用,因为现在您的查询返回由此表达式定义的匿名类型的序列:

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

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

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

(我不知道CheckBoxListInfo API是如何看的,所以YMMV。

答案 2 :(得分:0)

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