【发布时间】:2013-08-01 19:19:01
【问题描述】:
为将来偶然发现此问题的人编辑。
这不是一个轻而易举的问题,它是一个 EF 问题,并且在 SO 上已被多次询问。喜欢here 和here。
我正在使用带有 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):
为什么它们被向后插入?
【问题讨论】:
-
我之前也遇到过类似的问题,之后我就再也没有看到过 - 我认为可能是错误的,这与我设置导航属性的方式有关(听起来很疯狂)但是您是否尝试过 owner().licApp(licApp()) 而不是将所有者添加到 licApp?
-
@PWKad 结果还是一样!
标签: entity-framework knockout.js breeze