我的 SQL 表中的 ID 顺序有问题。我创建了一个程序,它从机器中读取一些变量,然后通过实体框架将这些值记录到 SQL 表中。对于值的上传,它使用两个列表 - 当第一个列表被填充(填充时间,例如,大约 10 分钟)变量时,第二个列表(包含记录的变量)上传到 SQL 表并自行清除。10 分钟后列表更改。
它工作正常,但是一旦我注意到某些行(有些 = 1000 行中的 100 行)有“损坏的顺序”。我的意思是有如下内容:
ID - 价值 - 时间
1000 - 3 - 15:00
1001 - 4 - 15:01
1002 - 1 - 14:58 !!
1003 - 2 - 14:59 !!
1004 - 5 - 15:02
1005 - 6 - 15:03
换句话说,有些变量有时会改变它们在 SQL 表中的顺序。这些问题行之前和之后的数千行都可以。
UPD:正如我刚刚发现的那样,如果时间(14:50:xx...15:50) ,这个问题每50分钟和51分钟发生一次......理解起来很奇怪......
所以我试着稍微编辑一下代码(不要向我扔砖头——我是编程新手)。有一种方法可以将记录的变量从列表写入 SQL 表:
public void WriteRecordedVariableToSQL()
{
if (timeTumbler == true && VariablesToBulkSQLList2.Count > 0)
{
List<VariableRecord> sortedVariablesToBulkSQLList2 = VariablesToBulkSQLList2.OrderBy(o => o.Time).ToList();
context.VariableRecords.AddRange(sortedVariablesToBulkSQLList2);
context.BulkSaveChanges();
VariablesToBulkSQLList2.Clear();
sortedVariablesToBulkSQLList2.Clear();
}
if (timeTumbler == false && VariablesToBulkSQLList1.Count > 0)
{
List<VariableRecord> sortedVariablesToBulkSQLList1 = VariablesToBulkSQLList1.OrderBy(o => o.Time).ToList(); //sortuju podle casu
context.VariableRecords.AddRange(sortedVariablesToBulkSQLList1);
context.BulkSaveChanges();
VariablesToBulkSQLList1.Clear();
sortedVariablesToBulkSQLList1.Clear();
}
}
但结果是一样的。如您所见,我使用实体框架扩展 ( EFE ) 及其 AddRange 来添加整个列表。问题可能存在吗?
所以我想解决这个问题,即 SQL 表中有按时间排序的值( ID 顺序正确)。
你能帮助我吗?提前致谢。希望你能理解我糟糕的英语。