如果只有一条记录返回linq输出错误C#

时间:2019-02-04 16:46:22

标签: c# entity-framework linq

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

var newIds = context.Devices.Take(deviceDataList.Count)
                    .OrderByDescending(t => t.Id)
                    .Select(t => t.Id)
                    .ToList();

如果deviceDataList.Count大于1,则运行正常。

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

1 个答案:

答案 0 :(得分:3)

先下订单,然后再取。 Take按照记录在集合中的顺序(可能只是在磁盘中或数据库的任何其他原因)中检索记录。如果您想确定是Id,那就这样做。

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