在Entity Framework codefirst中,如何把已有字段修改成枚举类型

qq37019736 2015-12-26 11:45:24
查了很多资料了,把原来string的类型改成了枚举类型
 public enum TYPE   
{
Healer,Rogue,Worrier
}

// [StringLength(10)]
public TYPE Type { get; set; }

然后在library package console里报错了

PM> Add-Migration AddType
The project 'Habitic2' failed to build.
PM> Update-Database
The project 'Habitic2' failed to build.


求解答,感激不尽
...全文
229 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kensouterry1 2015-12-27
  • 打赏
  • 举报
回复

public enum EnumType
        {
            Healer, Rogue, Worrier
        }

        //[StringLength(10)]
        public string strEnum { get; set; }

        //获取枚举值用这个属性
        public EnumType MyEnumType
        {
            get
            {
                Type tEnum = typeof(EnumType);
                object objEnum = Enum.Parse(tEnum, strEnum, true);
                EnumType rtype = default(EnumType);
                rtype = (EnumType)objEnum;
                return rtype;
            }
        }
修改一下
kensouterry1 2015-12-27
  • 打赏
  • 举报
回复
继承类里面去修改嘛,缝缝补补少不了的…… 设定一个数据实体类嘛DbModelEntity, 一个扩展类嘛 DbModelExtend : DbModelEntity; 继承类DbModelExtend 里面去修改嘛
wtoeb 2015-12-27
  • 打赏
  • 举报
回复
项目经验:我建议不要这样做,字段存放的是什么数据并不重要,重要的是你在具体的代码中去转换就行了。 实体类建议不要作任何修改,否则,你的数据库改动一次,你又得去修改一次实体类。
kensouterry1 2015-12-27
  • 打赏
  • 举报
回复

public enum EnumType
        {
            Healer, Rogue, Worrier
        }

        //[StringLength(10)]
        public string strEnum { get; set; }

        //获取枚举值用这个属性
        public EnumType MyEnumType
        {
            get
            {
                Type tEnum = typeof(EnumType);
                object objEnum = Enum.Parse(tEnum, strEnum, true);
                EnumType rtype = default(EnumType);
                rtype = objEnum as EnumType;
                return rtype;
            }
        }
字符串大概也可以这样整吧!
kensouterry1 2015-12-27
  • 打赏
  • 举报
回复
public enum TYPE { Healer,Rogue,Worrier } 枚举不就可以转换到一个int32么,值类型做对应的转换就可以了嘛! // [StringLength(10)] public int num {get;set;} //获取枚举值用这个属性 public EnumType MyEnumType { get { return (EnumType)num; } }
bluedoctor 2015-12-27
  • 打赏
  • 举报
回复
SOD框架天然支持枚举
lvfeng_95 2015-12-26
  • 打赏
  • 举报
回复
继承你的EF实体类,然后把需要修改成enum的字段修改成enum类型

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧