为将来偶然发现这个问题的人编辑。
这不是一个轻而易举的问题,它是一个 EF 问题,并且在 SO 上已被多次询问。喜欢这里和这里。
我正在使用带有 Knockout 的 Breeze。我正在创建实体并将它们推送到数组中,当将更改保存到服务器时,数据最终的顺序与在客户端上推送的顺序不同。我正在使用 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):
为什么它们被向后插入?