为将来偶然发现此问题的人编辑。
这不是一个轻微的问题,它是一个EF问题,并且多次被问过SO。与here和here一样。
我正在使用Breeze和Knockout。我正在创建实体并将它们推送到数组中,并且在将更改保存到服务器时,数据的结果顺序与客户端上推送的顺序不同。我正在使用Web API和实体框架。
Javascript代码如下所示:
var owner = manager.createEntity('OwnerInformation');
licApp().owners.push(owner);
在调用SaveChanges
之前,数组如下所示:
调用SaveChanges
时,saveBundle
看起来像这样(为简洁省略了很多其他信息)
{"entities": [
{
"Id": 2008,
{
"Id": -3,
"LicensingApplicationId": 2008,
"FirstName": "First",
"LastName": "Owner",
},
{
"Id": -4,
"LicensingApplicationId": 2008,
"FirstName": "Second",
"LastName": "Owner",
}
]}
但保存到数据库后,结果就是这个(第一列是id):
为什么要向后插入?
答案 0 :(得分:3)
我有一个更高级别的问题。你为什么在乎?您正在使用关系数据库。订单未定义。如果您关心订单,您的数据应该有订单。
我不是想偷偷摸摸。老实说,我相信保存订单的期望会让你失败。不然说服我。我已经准备好学习了。
p.s。:我不认为Breeze与它有任何关系......在客户端或服务器上。我敢打赌你在使用EF。我从来没有能够预测EF的保存令......考虑到所涉及的原则,我也没有费心去尝试。