我正在使用NoDb解决方案,我使用我在此处发生的对话后创建的命令行工具生成我的POCO模型的元数据:https://stackoverflow.com/a/14904913/178620
即使使用此元数据,我发现Breeze不是实现加载了简单查询的实体。因此,typeInitializers
不会被执行,实体属性也不是可观察的。
我知道我的设置和元数据是正确的,因为我在ko.computed
函数上定义的typeInitializer
属性之前有效。让我解释一下有什么变化!
以前,由于我们使用AutoMapper,我不得不避免使用IQueryable
,这导致我使用jQuery来逐个加载我的实体。这样实体就不会实现了,所以我公开地在mergeEntity
中公开了entityManager
函数来手动执行此操作,并且瞧瞧(轻描淡写)一切正常。
从那时起,我们已经实现了一个横切模型并取消了AutoMapper,现在我可以再次使用IQueryable
,从而进行Breeze查询。但是,我很难过为什么我的实体没有按预期工作!
答案 0 :(得分:0)
查看yourEntityManager.metadataStore.getEntityTypes()方法返回的entityTypes,并将其与服务器返回的json中嵌入的实体类型名称进行比较。
json结果中每个实体的$ type属性用于在metadataStore中定位相应的“entityType”。我的猜测是,现在类型名称不同,或者您在ApiController上缺少[BreezeController]属性。此属性可确保使用正确的JSON.NET序列化设置。