0

我正在尝试返回国家列表,并将返回值分配给 CountryCode 和 CountryName,但我不断收到以下错误:

无法将类型“System.Collections.Generic.List”隐式转换为“System.Linq.IQueryable”。存在显式转换(您是否缺少演员表?)

运算符“==”不能应用于“字符串”和“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

据我所知,您的代码有很多问题。另外我假设DbEntities实现IDisposable了,所以你应该把它包装在一个using语句中。

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

    public static IQueryable<CountryViewModel> GetCountries()
    {
        using (DbEntities _context = new DbEntities())
        {
            var featureCode = "PCLI";

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

            return countries;
        }
    }
}
于 2013-11-13T04:57:24.650 回答
0

我认为.Where子句的结束“)”应该在“featureCode”之后,就在.Select之前。错误消息听起来像是假设 Select 子句是条件的一部分。

于 2013-11-13T04:13:01.160 回答
0

在您的示例中,您返回的变量“国家”是一个 IEnumerable,而不是您原型化的 IQueryable。我想你可以返回 countries.AsQueryable()。如果你想返回一个列表,那么返回 country.ToList()。

于 2013-11-13T04:13:08.797 回答