我有以下内容:
public enum SearchSex {
All = 0,
Male = 1,
Female = 2,
Other = 3
}
现在我有了这个,允许Flags和bitmasking:
public enum SearchSex {
All = 1,
Male = 2,
Female = 4,
Other = 8
}
在制作中,我希望所有设置与我们进行此更新时保持一致。所以我有一个脚本正在执行以下操作:
// for each user:
user.SearchSex= (SearchSex)(Math.Pow(2, (Convert.ToInt32(user.SearchSex) - 1)));
我在想Convert.ToInt32会从数据库中返回(旧的)实际整数值,但是它试图将整数值映射到Enum定义中定义的那些(new)。即使不再定义任何相应的Enum值,我如何按原样读取原始整数值?
答案 0 :(得分:0)
为什么不在数据库上执行查询?像
这样的东西UPDATE usertable SET SearchSex = POWER(2, SearchSex);
当然,我建议您先运行一个选择查询。
SELECT *, Power(2, SearchSex) AS NewSearchSex FROM usertable;