Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果只有一条记录返回,linq输出是错误的c#_C#_Entity Framework_Linq - Fatal编程技术网

如果只有一条记录返回,linq输出是错误的c#

如果只有一条记录返回,linq输出是错误的c#,c#,entity-framework,linq,C#,Entity Framework,Linq,以下代码将从我的设备表返回新插入的记录id var newIds = context.Devices.Take(deviceDataList.Count) .OrderByDescending(t => t.Id) .Select(t => t.Id) .ToList(); 如果DeviceCatalist.Count大于1则工作正常 但当它只有一个时,它首先返回

以下代码将从我的
设备
表返回新插入的记录
id

var newIds = context.Devices.Take(deviceDataList.Count)
                    .OrderByDescending(t => t.Id)
                    .Select(t => t.Id)
                    .ToList();
如果
DeviceCatalist.Count
大于
1
则工作正常


但当它只有一个时,它首先返回的是错误的
id
,而不是最新插入的。

先下订单,然后接受
Take
按记录在集合中的顺序检索记录(可能只是在磁盘或数据库的任何其他推理中)。如果您想确保它是通过
Id
进行的,那么就这样做

var result = context.Devices.OrderByDesending(t => Id)
                    .Take(deviceDataList.Count)
                    .Select(t => t.Id);

先点菜,然后吃
Take
按记录在集合中的顺序检索记录(可能只是在磁盘或数据库的任何其他推理中)。如果您想确保它是通过
Id
进行的,那么就这样做

var result = context.Devices.OrderByDesending(t => Id)
                    .Take(deviceDataList.Count)
                    .Select(t => t.Id);

您正在呼叫
Take
,然后再订购。尝试将其更改为降序(t=>t.Id)。否则,您会说“我将按您喜欢的顺序取前N个值,然后再按这N个值进行排序”。您会在下单之前调用
take
。尝试将其更改为降序(t=>t.Id)。否则,您会说“我将按照您喜欢的顺序取前N个值,然后对这N个值进行排序”。这是答案,先对列表进行排序,然后再进行排序。这是答案,先对列表进行排序,然后进行排序。