来自linq函数的返回列表

时间:2012-08-26 17:49:05

标签: linq entity-framework

我想从类ApplicaitonType返回类型名列表但我收到错误 错误1实例参数:无法从'System.Linq.IQueryable'转换为'System.Collections.Generic.IEnumerable'C:\ Users \ sharaman \ documents \ visual studio 2010 \ Projects \ IssueTracking \ BAL_IssueTracking \ AppQuery.cs 19 17 BAL_IssueTracking

请提供您的反馈信息......非常明确

public static List AppType()

{

        List<ApplicationType> m = new List<ApplicationType>();

        var context = new Dll_IssueTracking.IssuTrackingEntities();// Object context defined in Dll_IssuTracking DLL

        var query = from c in context.ApplicationTypes//Query to find TypeNames

                    select new { c.TypeName };

        //return query.ToList<ApplicationType>();

        m = query.ToList<ApplicationType>();//Error here

        return m;

    }

2 个答案:

答案 0 :(得分:2)

您的查询选择匿名类型的序列:

select new { c.TypeName };

目前尚不清楚您希望如何将匿名类型转换为ApplicationType

根据您的数据源名称,我期望方法简单如下:

public static List<ApplicationType> AppType()    
{
    using (var context = new Dll_IssueTracking.IssuTrackingEntities())
    {
        return context.ApplicationTypes.ToList();
    }
}

特别是,创建List<ApplicationType>的实例然后忽略它是没有意义的,正如您目前所做的那样:

    List<ApplicationType> m = new List<ApplicationType>();
    ...
    m = query.ToList<ApplicationType>();
    return m;

为什么你会在这里烦恼变量,为什么要为它分配一个你从未使用过的值?

编辑:从你的评论:

  

实际上我需要从ApplicaitonType类返回TypeNames并通过此函数绑定到Dropdownlist

这表明您的方法声明不当。 您可以返回List<ApplicationType>并指定TypeName作为数据绑定中的显示部分,您可以更改方法以返回{ {1}}(假设是List<string>的类型):

TypeName

答案 1 :(得分:0)

尝试使用此代码

    public static List<ApplicationType> AppType()
    {

        var context = new Dll_IssueTracking.IssuTrackingEntities();// Object context defined in Dll_IssuTracking DLL

        var query = from c in context.ApplicationTypes//Query to find TypeNames
                    select new ApplicationType{TypeName = c.TypeName };
            return query.ToList();
    }