更新 : 2019-06-08

build in convertor

https://docs.microsoft.com/en-us/ef/core/modeling/value-conversions#built-in-converters

注意 : 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<Order>().Property(p => p.status).IsRequired().HasMaxLength().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); //
console.log(NumberStatus.completed); //

最新文章

  1. php使用microtime(true)查看代码执行时间
  2. 【hihoCoder】1148:2月29日
  3. [视频],花一分钟来看看Worktile是如何为团队协作而生的
  4. 定时器中实现数据库表数据移动的功能,Exception in thread &quot;Timer-0&quot; isExist java.lang.NullPointerException定时器中线程报错。
  5. R 操作矩阵和计算SVD的基本操作记录
  6. 初识selenium--百度实例录制
  7. MMU讲解
  8. android本地定时通知
  9. 获取C++类成员变量的地址偏移
  10. Solr4.8.0源码分析(24)之SolrCloud的Recovery策略(五)
  11. sqlplus登录、连接命令
  12. OCP读书笔记(8) - 监控和调优RMAN
  13. ym——Android之ListView性能优化
  14. UVALive 7299 Boggle(深搜的姿势)
  15. 【翻译】ExtJS vs AngularJS
  16. [Java算法分析与设计]--单向链表(List)的实现和应用
  17. axios请求
  18. HTML5中自定义属性(data-*)
  19. 寄存器CPU存储地址信息和数据信息的地方 CPU通过地址寄存器区分指令和数据
  20. 蹭你wifi后 我竟然干了这样的事

热门文章

  1. 5.使用Ribbon实现客户端侧负载均衡
  2. 2018icpc 徐州h题
  3. Css设置字体
  4. CentOS7设置开机启动方式(图形界面/命令行界面)
  5. SQL-W3School-基础:SQL 简介
  6. Fragment 和Activity的数据传递实例代码
  7. spring cloud之Eureka
  8. 计算机组成原理 — GPU 图形处理器
  9. [ML] Feature Selectors
  10. ssm整合用到的web.xml配置