【发布时间】:2015-12-08 22:42:04
【问题描述】:
我有一个 Angular + Breeze + WebApi(EF) 设置,在查询数据时效果很好。客户端默认为camelCase,服务端为PascalCase。
bp.NamingConvention.camelCase.setAsDefault();
我遇到的麻烦是通过 signalR 将新数据推送到我的应用程序时。数据从 .NET 堆栈到达 PascalCased(Breeze 明确表示不要弄乱服务器上的外壳)。然后我使用标准工厂创建一个新实体并尝试使用传递的值对其进行初始化。由于初始哈希都是 PascalCased,因此大多数属性无法正确初始化。有没有办法告诉 Breeze 它应该像查询时一样转换这些数据?我还没有成功。基本上,我只是希望 Breeze 像对待它收到的所有数据一样对待它。
function onSignalRData(call){
var callType = manager.metadataStore.getEntityType("Call");
// call json from server is like { Id: 1, Name: "Paul", IsActive: true }
// I think Breeze expects { id: 1, name: "Paul", isActive: true }
var newCall = callType.createEntity(call);
}
有什么建议吗?我看到 Breeze 提到了手动定义的命名约定,但是我在这里并没有做任何奇特的事情,只是在做 Breeze 在查询中所做的相同的事情,但在创建初始化程序中。
【问题讨论】:
标签: javascript signalr breeze