0

我想从 ApplicaitonType 类返回类型名列表,但收到错误 Error 1 Instance argument: cannot convert from 'System.Linq.IQueryable' to 'System.Collections.Generic.IEnumerable' C:\Users\sharaman\documents\visual工作室 2010\Projects\IssueTracking\BAL_IssueTracking\AppQuery.cs 19 17 BAL_IssueTracking

请提供您对此的反馈...非常感谢

公共静态列表 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;

    }
4

2 回答 2

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

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

public static List<string> GetApplicationTypeNames()
{
    using (var context = new Dll_IssueTracking.IssuTrackingEntities())
    {
        return context.ApplicationTypes.Select(type => type.typeName)
                                       .ToList();
    }
}
于 2012-08-26T17:54:44.870 回答
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();
    }
于 2012-08-26T17:55:03.250 回答