C# Lambda:按执行订单,但请参考随附的表格

C# Lambda:按执行订单,但请参考随附的表格,c#,lambda,C#,Lambda,这是我当前的lambda表达式: var field = db.forms .Include(r => r.lists) .Include(r => r.fields) .Include(r => r.workflow_step .Select(b => b.fields))

这是我当前的lambda表达式:

var field = db.forms
                   .Include(r => r.lists)
                   .Include(r => r.fields)
                   .Include(r => r.workflow_step
                           .Select(b => b.fields))
                   .FirstOrDefault(r => r.form_id == ID);
我需要做的是使用fields.column name like.OrderBys=>fields.step\u field\u no对order by子句进行排序或执行排序

似乎order by仅适用于db.forms中可用的字段

我尝试了下面的代码

    var field = (db.forms
           .Include(r => r.lists)
           .Include(r => r.workflow_step)
           .Include(r => r.fields)
           .Include(r => r.workflow_step
                   .Select(b => b.fields))
           .Include(r=>r.fields
               .OrderBy(c=>c.step_field_no))
           .FirstOrDefault(r => r.form_id == ID));
但在运行时,它会抛出一个错误:

包含路径表达式必须引用导航属性 在类型上定义。使用虚线路径进行参考导航 属性和集合导航的选择运算符 属性。\r\n参数名称:路径


提前感谢您的回答。

您尝试了什么?请提供一个好的例子,清楚地说明你正在尝试做什么。order by似乎只对db.forms中可用的字段可用-您可以使用调用order by时可用的任何数据来调用order by。如果您试图在上面的.Select之后调用它,您应该能够按f=>f.step\u字段\u no排序。如果您试图在.Select之前调用它,则b=>b.fields.step\u字段\u no。我没有看到上面的任何上下文,其中s=>fields.step\u field\u no将起作用;字段从哪里来?嗨,彼得,我试过下面的代码,db.forms.Includer=>r.lists.Includer=>r.fields.OrderBys=>field.step\u field\u no.Includer=>r.workflow\u step.Selectb=>b.fields.FirstOrDefaultr=>r.form_id==id此项不会根据步骤字段编号对结果进行排序。谢谢。Microsoft文档称Include参数是字符串。请参阅:。如何在单个字符串上执行OrderBy。OrderBy需要在阵列上完成,您的最终目标是什么?是否希望var字段包含已排序的值?请理解.Include和.Includex=>x.Select用于快速加载,而不是指定行顺序。我感觉您希望在最后一个.Include之后应用.OrderBy。但是您需要更好地表示您的问题hi@Vikhram,我的目标是根据dbo.[fields].[step_field_no]对结果进行排序。