0

国のリストを返そうとしていますが、戻り値を CountryCode と CountryName に代入すると、次のエラーが発生し続けます。

タイプ 'System.Collections.Generic.List を 'System.Linq.IQueryable' に暗黙的に変換することはできません。明示的な変換が存在します (キャストがありませんか?)

演算子 '==' は、タイプ 'string' および 'System.Collections.Generic.List のオペランドには適用できません

これが私のコードです:

public class CountryViewModel
{
    public string CountryCode { get; set; }
    public string CountryName { get; set; }


    /*SELECT COUNTRIES */

    public static IQueryable<CountryViewModel> GetCountries()
    {
        DbEntities _context = new DbEntities();

        var featureCode = "PCLI";

        var countries = _context.country
                        .Where(c => c.Feature_Code == featureCode
                        .Select(n => new CountryViewModel
                        {
                            CountryCode = c.Country_Code,
                            CountryName = c.Name
                        }
                        ));

        return countries;

}

これと一緒に私を助ける適切な例を見つけることができませんでした。

4

3 に答える 3

0

あなたの例では、あなたが返す変数「countries」は、プロトタイプを作成した IQueryable ではなく IEnumerable です。countries.AsQueryable() を返すことができると思います。リストを返したい場合は、countries.ToList() を返します。

于 2013-11-13T04:13:08.797 に答える
0

.Where 句の最後の ")" は、"featureCode" の後、.Select の直前にする必要があると思います。エラー メッセージは、Select 句が条件の一部であると想定しているように聞こえます。

于 2013-11-13T04:13:01.160 に答える