C# 无法从IOrderedQueryable隐式转换类型<;T>;列出<;T>;

C# 无法从IOrderedQueryable隐式转换类型<;T>;列出<;T>;,c#,entity-framework,C#,Entity Framework,我在seminariolista=行中得到以下错误: 无法将类型从IOrderedQueryable隐式转换为List public List Listarseminariomodal() { var seminariolista=新列表(); 尝试 { 使用(var ctx=new ProyectoContext_389;() { seminariolista=ctx.Seminario.Where(x=>x.modal==1) .OrderBy(x=>x.orden); } } 捕获(例外)

我在
seminariolista=
行中得到以下错误:

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

public List Listarseminariomodal()
{
var seminariolista=新列表();
尝试
{
使用(var ctx=new ProyectoContext_389;()
{
seminariolista=ctx.Seminario.Where(x=>x.modal==1)
.OrderBy(x=>x.orden);
}
}
捕获(例外)
{
投掷;
}
返回Seminarilista;
}

可能将其定义为

IEnumerable<Seminario> seminariolista = null;
会有用的

但在我看来,一般来说,返回列表对象不是一个好主意,除非您明确需要它。我将返回一个IEnumerable,以尽可能保持方法签名的通用性。 因此,在我看来,在不了解应用程序和代码其余部分要求的情况下,代码的最佳解决方案是:

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();
}
public IEnumerable Listarseminariomodal()
{
IEnumerable-SeminariLista=null;
尝试
{
使用(var ctx=new ProyectoContext_389;()
{
seminariolista=ctx.Seminario.Where(x=>x.modal==1)
.OrderBy(x=>x.orden);
}
}
捕获(例外)
{
投掷;
}
返回seminariolista.ToArray();
}
请注意末尾的
ToArray()
调用,以将LINQ内容隐藏在方法体之外

return seminariolista.ToList();
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();
}