0

我在 Global.asax 中使用以下内容将格式更改为客户端上的 camelCase。

        // Change Json data to camelCasing
        var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
        json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

此外,我们正在使用 Unity,我有一个单独的服务和一个自定义 EFContextProvider 类,该类返回元数据,在控制器中使用。我假设因为我在 BreezeController 之外生成元数据,所以它会在 PascalCase 中返回元数据,我的 Code first DbContext 都在使用它。

最终结果是我得到了 PascalCased 元数据(这似乎不符合我的预期)和来自 entityQueries 的 camelCased 实体,但不是可观察到的剔除属性。任何提示或想法为什么我的实体不可观察将不胜感激。

4

2 回答 2

1

您不需要为此使用 ContractResolver,Breeze 直接通过它的 NamingConvention 类处理这个问题:请参阅此页面上的 NamingConvention 讨论。微风文档 - 命名约定

基本上,您需要做的就是调用:

 breeze.NamingConvention.camelCase.setAsDefault(); // a convention can self-register as the default
于 2013-05-23T16:20:02.780 回答
0

您可以使用 BreezeConfig.Instance.GetJsonSerializerSettings().ContractResolver 实现此服务器端。

public static void RegisterBreezePreStart() {
 GlobalConfiguration.Configuration.Routes.MapHttpRoute(
  name: "BreezeApi",
  routeTemplate: "breeze/{controller}/{action}"
 );


 BreezeConfig.Instance.GetJsonSerializerSettings().ContractResolver 
                                        = new CamelCasePropertyNamesContractResolver();
}
于 2016-11-17T03:42:32.540 回答