0

我正在使用 NoDb 解决方案,我使用我在此处发生的对话后创建的命令行工具生成我的 POCO 模型的元数据:https ://stackoverflow.com/a/14904913/178620

即使有了这个元数据,我发现 Breeze 并没有具体加载了简单查询的实体。结果,typeInitializers不被执行并且实体属性不是可观察的。

我知道我的设置和元数据是正确的,因为ko.computed我在typeInitializer函数上定义的属性以前有效。让我解释一下发生了什么变化!

以前,由于我们使用 AutoMapper,我不得不避免IQueryable,这导致我使用 jQuery get 来一一加载我的实体。这样实体就不会被具体化,所以我已经公开公开了手动执行此操作的mergeEntity功能entityManager,瞧(轻描淡写)事情奏效了。

从那时起,我们实现了一个横切模型并消除了 AutoMapper,现在我可以IQueryable再次使用,因此可以使用 Breeze 查询。但是,我对为什么我的实体没有按预期工作感到困惑!

4

1 回答 1

0

查看 yourEntityManager.metadataStore.getEntityTypes() 方法返回的 entityTypes,并将其与服务器返回的 json 中嵌入的实体类型名称进行比较。

json 结果中每个实体的 $type 属性用于在 metadataStore 中定位相应的“entityType”。我的猜测是类型名称现在不同,或者您的 ApiController 上缺少 [BreezeController] 属性。此属性确保使用正确的 JSON.NET 序列化设置。

于 2013-04-01T18:18:30.573 回答