Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅限实现';IAsynceneumerable';可用于实体框架异步操作_C#_Linq_Ef Core 3.0 - Fatal编程技术网

C# 仅限实现';IAsynceneumerable';可用于实体框架异步操作

C# 仅限实现';IAsynceneumerable';可用于实体框架异步操作,c#,linq,ef-core-3.0,C#,Linq,Ef Core 3.0,我正在尝试使用以下代码在Linq中动态设置order by: Func<TransactionResult, Object> orderByFunc = null; var sortKey = query.SortOption.Split(":")[0]; var sortDirection = query.SortOption.Split(":")[1];

我正在尝试使用以下代码在Linq中动态设置order by:

        Func<TransactionResult, Object> orderByFunc = null;

            var sortKey = query.SortOption.Split(":")[0];
            var sortDirection = query.SortOption.Split(":")[1];

            if (sortKey == "Date")
                orderByFunc = item => item.Created;
            else if (sortKey == "PatientName")
                orderByFunc = item => item.Customer.FirstName;
            else if (sortKey == "Status")
                orderByFunc = item => item.Status;
            else if (sortKey == "Source")
                orderByFunc = item => item.Source;
            else if (sortKey == "Amount")
                orderByFunc = item => item.Amount;


            if (sortDirection== "asc")
            {
                tQuery = tQuery.OrderBy(orderByFunc).AsQueryable();
            }
            else
            {
                tQuery = tQuery.OrderByDescending(orderByFunc).AsQueryable();
            }
Func orderByFunc=null;
var sortKey=query.SortOption.Split(“:”[0];
var sortDirection=query.SortOption.Split(“:”[1];
如果(排序键==“日期”)
orderByFunc=item=>item.Created;
else if(sortKey==“PatientName”)
orderByFunc=item=>item.Customer.FirstName;
else if(sortKey==“状态”)
orderByFunc=item=>item.Status;
else if(sortKey==“源”)
orderByFunc=item=>item.Source;
否则,如果(排序键=“金额”)
orderByFunc=item=>item.Amount;
如果(排序方向==“asc”)
{
tQuery=tQuery.OrderBy(orderByFunc.AsQueryable();
}
其他的
{
tQuery=tQuery.OrderByDescending(orderByFunc.AsQueryable();
}
我得到了一个错误:源“IQueryable”没有实现“IAsyncEnumerable”。只有实现“IAsyncEnumerable”的源才能用于实体框架异步操作


非常感谢您提供的任何帮助。

您似乎使用了错误的实现。请参阅副本。如果您仍然无法理解,请随时发布一个新问题,确保您解释了您已经做了哪些研究(包括查看现有副本),以及具体需要哪些帮助。实际问题是,通过使用
Func
您正在执行查询客户端,这就是为什么存在
.AsQueryable()
调用,但上下文已切换,无法再查询。通常的解决方案是将
Func
更改为
Expression
,从而命中
Queryable
重载,而不离开EF Queryable上下文。