none
EF的T4模板规则,如何实现 Enum类型的Display属性? RRS feed

  • 问题


  • 实体类我已经实现了这个的生成规则,但是枚举类型如何实现呢?

            /// <summary>
        	/// 名称
        	/// 
        	/// </summary>
        	[Display(Name = "名称", Description = "")]
        	[Required(ErrorMessage = "请填写{0}")]
        	[StringLength(20, ErrorMessage ="{0}不能超过{1}个字符")] 
            public string Name { get; set; }


    Model.edmx 文件中的枚举类型

      <EnumType Name="CompanyTypes">
              <Member Name="Fims" />
              <Member Name="Dealer" />
            </EnumType>

    我想实现这样的代码规则

     public enum CompanyTypes : int
        {
            [Display(Name ="厂商")]
            Fims = 0,
            [Display(Name = "代理商")]
            Dealer = 1
        } 

    使用环境: Web MVC5


    2017年6月18日 5:36

全部回复

  • 你好,

    你可以删除Model.edmx 文件中的枚举类型。 自定义一个枚举类型,像你的代码那样。

    using System.ComponentModel.DataAnnotations;
    
    namespace WebApplication1
    {
        public enum CompanyTypes : int
        {
            [Display(Name = "厂商")]
            Fims = 0,
            [Display(Name = "代理商")]
            Dealer = 1
        }
    }

    然后需要在Edmx中更改Name 字段的类型为你自定义的类型。

    注意,需要你的数据库支持enum类型。

    Best regards,

    Cole Wu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年6月19日 3:09
    版主