无法将类型从IOrderedQueryable <t>隐式转换为List <t>

时间:2016-01-27 19:15:49

标签: c# entity-framework

我在seminariolista =行上收到以下错误:

  

无法将类型从IOrderedQueryable隐式转换为List

public List<Seminario> Listarseminariomodal()
{
    var seminariolista = new List<Seminario>();
    try
    {
        using (var ctx = new ProyectoContext_())
        {
            seminariolista = ctx.Seminario.Where(x => x.modal == 1)
            .OrderBy(x => x.orden);
        }
    }
    catch (Exception)
    {
        throw;
    }
    return seminariolista;
}

Visual Studio Screenshot

1 个答案:

答案 0 :(得分:0)

可能将其定义为

IEnumerable<Seminario> seminariolista = null;

并将其作为

返回
return seminariolista.ToList();

会奏效。

但总的来说,在我看来,返回List对象并不是一个好主意,除非你明确需要它。我会返回一个IEnumeralble,以保持方法签名尽可能通用。 因此,在我看来,这是您的代码的最佳解决方案,并且不知道您的应用程序和其他代码的要求:

public IEnumerable<Seminario> Listarseminariomodal()
{
    IEnumerable<Seminario> seminariolista = null;
    try
    {
        using (var ctx = new ProyectoContext_())
        {
            seminariolista = ctx.Seminario.Where(x => x.modal == 1)
            .OrderBy(x => x.orden);
        }
    }
    catch (Exception)
    {
        throw;
    }
    return seminariolista.ToArray();
}

注意最后的ToArray()调用,以隐藏方法体外的LINQ内容。