zoukankan      html  css  js  c++  java
  • Entity Framewor 学习笔记 (Enum)

    EF 6 支持Enum 的处理

    首先说一下 mysql 和 sql server 的区别 

    mysql 是有 Enum 这个类型的 , insert 时是放入 int , 出来的时候它会是 string (int to str 是设定在 mysql 内的)

    mssql 不支持 Enum 这个类型,也不好模拟. (有人用 check constraint 来模拟,我觉得不太理想)

    入题,

    sql 应该使用 int. 

    EF 对 Enum 会自行替换成 int ,我们就是要 Enum 就好

    Json.net 在反序列化时是会处理Enum的,

    在序列化时就不会,但我们可以自己调一下就可以了。 

    http://stackoverflow.com/questions/2441290/json-serialization-of-enum-as-string 

    在使用 web api 2 odata v4 时也可以使用 Enum

        public enum OrderStatusEnum
        {
            unpaid,
            paid,
            completed  
        }
        [Table("order_test")]
        public class OrderTest
        {
            [Key]
            public int id { get; set; }       
            public string data { get; set; }
            public OrderStatusEnum statusEnum { get; set; }    
        }

    Entity 就这么写,controller 一如往常没什么区别

    在做 REST 时,如果要 $filter 是这样写的 $filter=statusEnum eq EFDB.OrderStatusEnum'completed'" (namespace + enumClass + string)

    做post, put 时,写 string 就可以了。

    js : string 

    c# : Enum 

    sql : int 

    for Odata convert display name 可以参考 : 

    http://stackoverflow.com/questions/1415140/can-my-enums-have-friendly-names

    https://github.com/OData/WebApi/blob/master/OData/src/System.Web.OData/OData/Formatter/Serialization/ODataEnumSerializer.cs

    可以 odata response format 哪里拦截到 type = isEnum() 然后overwrite 掉default的converter .

  • 相关阅读:
    druid spring监控配置
    深入理解Java:SimpleDateFormat安全的时间格式化
    Thread.join()方法
    static 作用
    Java链接SqlServer,学生数据管理面板
    java巅峰作业
    2019.6.12Java/IO data
    Java常用类
    2019.6.5
    java求和运算窗口5.29
  • 原文地址:https://www.cnblogs.com/keatkeat/p/4307205.html
Copyright © 2011-2022 走看看