刚才外地回来。经过紧张的通宵式工作,总算项目告一段落了。
中间发现一个问题。就是一个列表的结果返回不准确。
库是MySQL。
发现结果不准确后,开始对查询SQL进行限制。增加orderby ,测试了一下,发现没问题就提交了。
过了一天,又有报这类问题的,但是经过多次测试,无法复现。
经过查询资料,发现MySQL排序本身就是不准确,但是这不是结果错误的原因。
MySQL结果不准确,可以用程序来修正。mysql要保证结果顺序的唯一性,要orderby 排序字段,另加一个唯一列(自增ID最好)。
mysql 时间转化为时间戳 UNIX_TIMESTAMP(字段)这时候,这个字段就可以排序了,order by UNIX_TIMESTAMP (XXX) desc。
这时候,mysql的问题解决了。
asp.net webapi 返回结果的时候,发现对象排序是使用的第一个属性进行字符串排序,这个就有问题了,目前的项目model返回的第一个列是ID,guid,非自自增。
也会造成排序混乱(可能)。
现在解决方式是,model第一个属性为排序专用字段。字段的值是整形数(int)。
大概如下。
int index=1;
xxx.sortKey=index;
index++;
来保证顺序。
经过结果比对,结果正常(结果是专门挑选的出问题的数据进行测试的,算是直接回归问题部分)。
原文:http://www.cnblogs.com/wcLT/p/5606028.html