在linQ中选择数字顺序

时间:2017-04-06 05:58:23

标签: c# entity-framework linq

var lstCatalog = context.Drinks_Category.Select(x => new { x.Id_category, x.Name_category, x.Parent}).ToList();

我有一个包含3列的表格。我想添加一个序列号列,那我该怎么做呢? Id_category是Key。

谢谢!

我的新代码:

var lstCatalog = context.Drinks_Category.Select((x, i) => new { Index = i, x.Id_category, x.Name_category, x.Parent }).OrderByDescending(x=>x.Id_category).ToList();

并出现此错误:

System.NotSupportedException:'LINQ to Entities无法识别方法'System.Linq.IQueryable 1[<>f__AnonymousType1 4 [System.Int32,System.String,System.String,System.String]]选择[Drinks_Category, &lt;&gt; f__AnonymousType1 4](System.Linq.IQueryable 1 [BBModel.Drinks_Category],System.Linq.Expressions.Expression 1[System.Func 3 [BBModel.Drinks_Category,System.Int32,&lt;&gt; f__AnonymousType1`4 [System.Int32 ,System.String,System.String,System.String]]])'方法,此方法无法转换为商店表达式。'

1 个答案:

答案 0 :(得分:3)

Select extension that allows you to including the iteration index超载。你只需要在你的select的lambda中添加它。您可能希望首先将其与OrderBy结合使用,否则您将按存储顺序(通过Drinks_Category聚集索引)获取它们。

var lstCatalog = context.Drinks_Category.Select((x, i) => new { i, x.Id_category, x.Name_category, x.Parent}).ToList();