C# 如何修复“类型中不存在属性或字段”错误?

C# 如何修复“类型中不存在属性或字段”错误?,c#,asp.net-mvc,entity-framework,linq,dynamic-linq,C#,Asp.net Mvc,Entity Framework,Linq,Dynamic Linq,如果我使用OrderByCustomer.CompanyName++sort,尝试对不在订单表中的任何列进行排序时出现此错误。如果我使用OrderByCustomer.CompanyName++sort,则错误将消失,但所有列将无法排序。下面使用的OrderBy方法来自 问题的原因是什么 public ActionResult WebGridint page=1,int rowsPerPage=10,string sortCol=OrderID,string sortDir=ASC { 列表资源

如果我使用OrderByCustomer.CompanyName++sort,尝试对不在订单表中的任何列进行排序时出现此错误。如果我使用OrderByCustomer.CompanyName++sort,则错误将消失,但所有列将无法排序。下面使用的OrderBy方法来自

问题的原因是什么

public ActionResult WebGridint page=1,int rowsPerPage=10,string sortCol=OrderID,string sortDir=ASC { 列表资源; 使用var nwd=新的NorthwindEntities { var _res=nwd.订单 .OrderBysortCol++sortDir .Selecto=>新订单 { OrderID=o.OrderID, OrderDate=o.OrderDate, CompanyName=o.Customer.CompanyName, FirstName=o.Employee.FirstName, //...... //...... //...... };
提供链接的类被标记为internal,不能在定义该类的程序集之外使用,因此不能在代码中使用该类

此API支持产品基础架构,不打算 直接从代码中使用。提供创建新代码的功能 从LinqDataSource控件中的值初始化

因此,您实际尝试使用的是System.Linq中的Queryable类,该类可以如下使用:

.OrderBy(x=> x.sortCol + " " + x.sortDir)
如果您试图按两列排序,则可以使用:

.OrderBy(x=> x.sortCol).ThenBy(x=> x.sortDir)

如果要动态指定OrderBy表达式,可以对每个可能的参数执行switch语句,或者按照此语句构建动态表达式树。

谢谢帮助,但我无法在dynamic linq下使用ThenBy。谢谢帮助!我发现我可以使用else If语句来实现这一点。