C# System.Linq.Dynamic.Core的行为与.Net MVC 5版本不相似

C# System.Linq.Dynamic.Core的行为与.Net MVC 5版本不相似,c#,asp.net-core,.net-core,C#,Asp.net Core,.net Core,我正在尝试在我的函数OrderBy中实现System.Linq.Dynamic.Core。由于某种原因,它给出了这个错误 “List”不包含“OrderBy”的定义,并且最佳扩展方法重载“DynamicQueryableExtensions”。OrderBy(IQueryable,string,params object[])需要类型为“IQueryable”的接收器 List data=(来自dbContext.Users中的用户 选择新的UsersListViewModel { Id=use

我正在尝试在我的函数OrderBy中实现System.Linq.Dynamic.Core。由于某种原因,它给出了这个错误

“List”不包含“OrderBy”的定义,并且最佳扩展方法重载“DynamicQueryableExtensions”。OrderBy(IQueryable,string,params object[])需要类型为“IQueryable”的接收器

List data=(来自dbContext.Users中的用户
选择新的UsersListViewModel
{
Id=user.Id,
Name=user.FirstName+“”+user.LastName,
UserName=user.UserName,
Email=user.Email,
PhoneNumber=user.PhoneNumber
}).ToList();
if(!(string.IsNullOrEmpty(Input.Order)和&string.IsNullOrEmpty(Input.OrderDir)))
{
var columnName=modelStructure.FirstOrDefault(f=>f.Key==Convert.ToInt32(Input.Order));
data=data.OrderBy(columnName.Value+“”+Input.OrderDir.ToList();
}

OrderBy不允许编译我的代码。在我的另一个ASP.NET MVC 5应用程序中,添加System.Linq.Dynamic会起作用。

您应该将数据转换为IQueryable:

using System.Linq.Dynamic.Core;

    List<UsersListViewModel> data = (from user in dbContext.Users
     select new UsersListViewModel
     {
         Id = user.Id,
         Name = user.FirstName + " " + user.LastName,
         UserName = user.UserName,
         Email = user.Email,
         PhoneNumber = user.PhoneNumber
     }).ToList();

     if (!(string.IsNullOrEmpty(Input.Order) && string.IsNullOrEmpty(Input.OrderDir)))
    {
        var columnName = modelStructure.FirstOrDefault(f => f.Key == Convert.ToInt32(Input.Order));
        data = data.OrderBy(columnName.Value + " " + Input.OrderDir).ToList();
    }

     if (!(string.IsNullOrEmpty(Input.Order) && string.IsNullOrEmpty(Input.OrderDir)))
    {
        var columnName = modelStructure.FirstOrDefault(f => f.Key == Convert.ToInt32(Input.Order));
        data = data.AsQueryable().OrderBy(x=> x.).ToList();
    }
使用System.Linq.Dynamic.Core;
列表数据=(来自dbContext.Users中的用户)
选择新的UsersListViewModel
{
Id=user.Id,
Name=user.FirstName+“”+user.LastName,
UserName=user.UserName,
Email=user.Email,
PhoneNumber=user.PhoneNumber
}).ToList();
if(!(string.IsNullOrEmpty(Input.Order)和&string.IsNullOrEmpty(Input.OrderDir)))
{
var columnName=modelStructure.FirstOrDefault(f=>f.Key==Convert.ToInt32(Input.Order));
data=data.OrderBy(columnName.Value+“”+Input.OrderDir.ToList();
}
if(!(string.IsNullOrEmpty(Input.Order)和&string.IsNullOrEmpty(Input.OrderDir)))
{
var columnName=modelStructure.FirstOrDefault(f=>f.Key==Convert.ToInt32(Input.Order));
data=data.AsQueryable().OrderBy(x=>x.).ToList();
}

您应该将数据转换为IQueryable:

using System.Linq.Dynamic.Core;

    List<UsersListViewModel> data = (from user in dbContext.Users
     select new UsersListViewModel
     {
         Id = user.Id,
         Name = user.FirstName + " " + user.LastName,
         UserName = user.UserName,
         Email = user.Email,
         PhoneNumber = user.PhoneNumber
     }).ToList();

     if (!(string.IsNullOrEmpty(Input.Order) && string.IsNullOrEmpty(Input.OrderDir)))
    {
        var columnName = modelStructure.FirstOrDefault(f => f.Key == Convert.ToInt32(Input.Order));
        data = data.OrderBy(columnName.Value + " " + Input.OrderDir).ToList();
    }

     if (!(string.IsNullOrEmpty(Input.Order) && string.IsNullOrEmpty(Input.OrderDir)))
    {
        var columnName = modelStructure.FirstOrDefault(f => f.Key == Convert.ToInt32(Input.Order));
        data = data.AsQueryable().OrderBy(x=> x.).ToList();
    }
使用System.Linq.Dynamic.Core;
列表数据=(来自dbContext.Users中的用户)
选择新的UsersListViewModel
{
Id=user.Id,
Name=user.FirstName+“”+user.LastName,
UserName=user.UserName,
Email=user.Email,
PhoneNumber=user.PhoneNumber
}).ToList();
if(!(string.IsNullOrEmpty(Input.Order)和&string.IsNullOrEmpty(Input.OrderDir)))
{
var columnName=modelStructure.FirstOrDefault(f=>f.Key==Convert.ToInt32(Input.Order));
data=data.OrderBy(columnName.Value+“”+Input.OrderDir.ToList();
}
if(!(string.IsNullOrEmpty(Input.Order)和&string.IsNullOrEmpty(Input.OrderDir)))
{
var columnName=modelStructure.FirstOrDefault(f=>f.Key==Convert.ToInt32(Input.Order));
data=data.AsQueryable().OrderBy(x=>x.).ToList();
}

您是否使用System.Linq添加了
?是的,我添加了。为了使用OrderBy,我必须为ASP.NET MVC 5添加System.Linq.Dynamic。我假设它对于.NET core是相同的,但显然不是。您是否使用System.Linq添加了
?是的。为了使用OrderBy,我必须为ASP.NET MVC 5添加System.Linq.Dynamic。我假设它对.NET core是相同的,但显然不是?