我的应用程序有一个模型,它当前在SQL数据库中使用一个整数来存储[Flags] Enum的值。 Enum看起来像这样:
namespace MyProject.Models
{
[Flags]
public enum MyEnum : int
{
FirstThing = 1,
SomethingElse = 2,
YetAnotherOne = 4
}
}
因此,如果特定行将此字段设置为3,则表示标志FirstThing
和SomethingElse
都已设置。现在我正在使用一个帮助器类来转换和检查MyEnum值到/从/反对整数,这确实有效,但我认为必须有一种方法将SQL INT字段直接映射到枚举。
基本上,最终目标是有一个复选框列表,每个可能的标志一个,最终将作为INT保存在数据库中。
这是个好主意吗?如果是这样,我该如何解决这个问题呢?如果没有,我应该自己吮吸它并自己写出所有代码(而不是使用一些漂亮的技巧)?
答案 0 :(得分:2)
您将需要该辅助类,OR映射器都不支持将int映射到枚举。它有很多方法,但更多的是目标行为的复制,其中有间隙孔,而不是想要的效果附近的任何东西。