如何在网站应用程序和数据库之间共享枚举?例如,如果我有一个TYPE
表,如下所示:
id |名称
1种type1
2 type2
和一个枚举:
enum Type {
type1 = 1,
type2 = 2
}
可以自动链接两者,例如,当数据库为空时,应用程序应将这两行相加,以便应用程序中使用的枚举与数据库中使用的类型匹配。我想这样做是因为在数据库中,product
的类型可能是furniture
(因此,type_id
中的product
引用了furniture
类型。表TYPE
),但我也想做类似的事情
if (type === Type.furniture) {
// ...
}
直接从应用程序逻辑中(例如,根据类型更改前端)。 这是一个非常普遍的问题,那么您将如何处理?除了手动确保两者都匹配之外,还有其他方法吗?
答案 0 :(得分:0)
您是否正在使用某种ORM?如果是,是代码优先方法还是数据库优先方法?
我知道您可以使用C#+ EFcore做类似的事情。您必须使用ModelBuilder的HasData()方法。实现目标的工作流程将是:获取枚举的所有成员,并使用它们填充db表。如果您没有使用EFcore和C#,我想您可以通过找到合适的ORM播种方法以及提取所有枚举成员的合适方法,采用类似的方法来解决您的问题。 对于问题的第二部分,您将需要直接编辑存储枚举的文件。