我使用实体框架在asp.net中开发了一个系统。所有其他表都很好,但是当我在某些表中插入数据时,它不会按升序插入。可能是什么问题呢?? 以下是插入数据的方式:
1
10
11
12
13
2
21
22
23
24
25
3
31
32
4
5
6
7
请不要告诉我通过order by子句检索数据。我问的是插入订单。
答案 0 :(得分:4)
SQL数据库中没有固有的顺序。当您直接或通过实体框架(EF)运行select时,您的数据库可以按照任何最适合数据检索的顺序返回行。
解决由于缺少订单SQL供应ORDER BY
子句而可能发生的问题,该子句控制将检索到的信息返回给您的顺序。在EF中,这对应于OrderBy
方法:
var results = db.MyTable.OrderBy(row => row.SomeField);
但是,在您的特定情况下,您似乎正在将数字数据插入基于字符的字段中。发生这种情况时,数据按字典顺序排序(即像字典中的单词),它会产生您看到的顺序。要维护预期的顺序,请使用适当的列数据类型:如果列是数字,请为其使用多种数字SQL类型之一。