【发布时间】:2019-04-18 21:36:37
【问题描述】:
假设我在数据库中有一个列可以接受在我的 C# 代码中定义的枚举的任何一个值。
有一种常用的方法可以让数据库可以将其存储在数据库表中并从那里引用它。
但有时您不想将枚举存储在数据库中,而只想在代码中维护它,对于这些情况,我在我的项目中提出了解决方案,以便拥有一个返回值的视图枚举,这样我们就不必在数据库中硬编码它,所以在数据库中有这样的东西
CREATE VIEW ENUM.ValidationFailReasonTypes
AS
SELECT 1 AS [FormLevel], 2 AS [GridLevel]
对于枚举
public enum ValidationFailReasonTypes
{
FormLevel = 1,
GridLevel = 2
}
所以只是想问一下,当我们不想将枚举存储在数据库中时,这样做是个好主意还是有更好的方法来处理这种情况?
【问题讨论】:
-
您要存储在枚举中的数据类型与您要存储在数据库中的数据类型不同。枚举应该用于极不可能更改的内容,而存储在数据库中的数据应该用于应该易于更改的内容。
-
在数据库中声明这些内容的主要好处之一是声明性引用完整性,确保错误的数据不会最终出现在数据库中。但是你不能在引用的“表”实际上是一个视图的地方声明一个外键。
标签: c# sql sql-server tsql enums