【发布时间】:2025-12-12 04:15:01
【问题描述】:
枚举什么时候崩溃?
为了支持现有系统中的新功能,我只是考虑在我的数据库架构中对实体表实施某种形式的鉴别器。
为了开始做最少的事情,为了可读性,我首先决定在业务实体层使用整数列和 C# 枚举。这将提供穷人的多态性,最终可能会成长为实际的多态性,并且可能会发展为策略模式。
我决定咨询博客圈,因为我从来没有完全习惯于使用枚举 - 我想知道,我应该跳过枚举直接使用结构还是类?:
首先我发现了一个断言'Enums are Evil',但我觉得这是一个过度概括,并没有直接解决我的用例。
如果我确实选择了一个枚举,那么有一个很好的讨论,我可以通过向我的枚举添加额外的元数据来extend my mileage。
接下来,我遇到了 Jimmy Bogard 对Enumeration Classes 的讨论,并在'Strategies and discriminators in NHibernate'中进一步讨论
我应该跳过枚举直接进入枚举类吗?或者是否有人对如何向我的域模型添加简单的实体鉴别器有任何其他建议。
更新:
我还要补充一点,NHibernate 和 LINQ to SQL(以及可能所有其他与 ORM 相关的数据访问方法)都使用枚举非常诱人,因为它们在映射中透明地let you map a discriminator column。
映射一个枚举类会那么容易吗?
相关问题:
免责声明:
尽管我粗心地使用了实体一词(带有小写“e”),但我并不想在这里讨论 DDD...
【问题讨论】:
-
读者可能会注意到,如果您决定使用枚举,那么这里有一个有趣的讨论,关于是否/如何将值保存在数据库中 *.com/questions/746812/…