【发布时间】:2010-10-13 10:32:08
【问题描述】:
我的应用程序有一个模型,该模型当前使用 SQL 数据库中的整数来存储 [Flags]Enum 的值。枚举看起来像这样:
namespace MyProject.Models
{
[Flags]
public enum MyEnum : int
{
FirstThing = 1,
SomethingElse = 2,
YetAnotherOne = 4
}
}
因此,如果特定行将此字段设置为 3,则意味着标志 FirstThing 和 SomethingElse 都已设置。现在我正在使用一个辅助类来转换和检查 MyEnum 值到/来自/反对整数,这确实有效,但我认为必须有一种方法可以将 SQL INT 字段直接映射到枚举。
基本上,最终目标是拥有一个复选框列表,每个可能的标志对应一个,最终将作为 INT 保存在数据库中。
这是个好主意吗?如果是这样,我该怎么做?如果没有,我是否应该把它收拾起来,自己写出所有的代码(而不是使用一些漂亮的技巧)?
【问题讨论】:
-
AFAIK L2SQL(和 EF,就此而言),不支持直接映射到枚举,因此需要“拼接”。
标签: c# linq-to-sql