博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.net core Enum as string + ef core value convertor
阅读量:6583 次
发布时间:2019-06-24

本文共 1216 字,大约阅读时间需要 4 分钟。

更新 : 2019-06-08 

build in convertor 

注意 : value null 是不走 convertor 的哦, 所以我们也不需要顾虑 nullable 的情况.

 

更新 2019-06-01 

string jsonWithConverter = JsonConvert.SerializeObject(new Dada { name = "keatkeat", type = Type.Completed }, new StringEnumConverter());

 

 

写 c# 我们喜欢用 enum. 但是 enum to sql, enum to fronend 都是麻烦. 

因为 enum 一般会转换成 int 而不是 string. 可是这样就不可读了. 

所以呢,我们的要动点手脚 

 

ef core convert 

modelBuilder.Entity
().Property(p => p.status).IsRequired().HasMaxLength(128).HasConversion( v => v.ToString(), v => (OrderStatus)Enum.Parse(typeof(OrderStatus), v));

有了这个在数据库就可以看见 string 了.

 

然后是 web api 

services.AddMvc(options =>{    options.EnableEndpointRouting = false;}).AddJsonOptions(options =>{    options.SerializerSettings.Converters.Add(new StringEnumConverter());})

这样 GET 就可以输出 string 了,  POST 的时候 binding, asp.net core 会自动转换, 所以前端传 string or int 都可以. 

 

OData

非常聪明,啥也不用弄,它本来就输出 string ... 也有点恐怖啦..

 

typescript 

enum StringStatus {     pending = 'pending',    completed = 'completed'}enum NumberStatus {     pending,    completed = 13}console.log(StringStatus.pending); // 'pending'console.log(NumberStatus.pending); // 0console.log(NumberStatus.completed); // 13

 

转载于:https://www.cnblogs.com/keatkeat/p/10807070.html

你可能感兴趣的文章
poj 1274The Perfect Stall
查看>>
HDU 4720 Naive and Silly Muggles (外切圆心)
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>
Ubuntu上运行Blender,在控制台上查看运行结果
查看>>
怎么检查网站的死链接呢?
查看>>
scrapy爬虫框架实例一,爬取自己博客
查看>>
React是UI的未来吗?
查看>>
中国人社部:2018年15个省(区、市)调整最低工资标准
查看>>
手把手教你通过Thrift 访问ApsaraDB for HBase
查看>>
MacOS安装MySQL 报错
查看>>
Java知识点总结(反射-反射操作泛型)
查看>>
Vue+webpack+Element 兼容问题总结
查看>>
《软技能》读书笔记(下)
查看>>
textarea文域高度自适应
查看>>
go语言renderer包代码分析
查看>>
【Scala谜题】成员声明的位置
查看>>
git最最最最...常用命令
查看>>
复杂recyclerView封装库
查看>>
使用Redis构建文章投票网站(Java)
查看>>
见微知著 —— Redis 字符串内部结构源码分析
查看>>