Entity Framework Core中ToJson()序列化器配置及驼峰命名需求
如何为EF Core的ToJson()方法自定义序列化器(实现小驼峰命名)
当然可以为EF Core中ToJson()方法指定自定义序列化规则,要实现小驼峰的属性命名格式,只需要通过配置JsonSerializerOptions即可,具体有两种实现方式:
1. 针对单个JSON列局部配置
直接在ToJson()的重载方法中传入序列化选项,指定属性命名策略为小驼峰:
builder.OwnsOne(m => m.MyClassProperty, ownedNavigationBuilder => { ownedNavigationBuilder.ToJson(options => { // 设置小驼峰命名策略 options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; }); });
2. 全局配置所有JSON列
如果希望项目中所有映射到JSON列的属性都使用小驼峰格式,可以在DbContext的OnConfiguring方法中全局配置:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("你的数据库连接字符串", sqlOptions => { sqlOptions.UseJsonSerializerOptions(new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }); }); }
配置完成后,MyClass属性的序列化结果就会变成期望的小驼峰格式:
{ "myInnerPropety": "Test"}
注意:EF Core默认使用
System.Text.Json作为JSON序列化器,如果你的项目使用的是Newtonsoft.Json,需要通过UseNewtonsoftJson()方法配置对应的命名策略(比如CamelCasePropertyNamesContractResolver)。
内容的提问来源于stack exchange,提问作者Dživo Jelić
相关产品推荐
相关产品推荐

