C# System.Linq.Dynamic.Core的行为与.Net MVC 5版本不相似
我正在尝试在我的函数OrderBy中实现System.Linq.Dynamic.Core。由于某种原因,它给出了这个错误 “List”不包含“OrderBy”的定义,并且最佳扩展方法重载“DynamicQueryableExtensions”。OrderBy(IQueryable,string,params object[])需要类型为“IQueryable”的接收器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
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是相同的,但显然不是?