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();
}