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

フィードバックをお寄せください...大いに期待しています

public static リスト 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 に答える