SynchronizingReferentialIntegrityTablesandEnumerations时不时会想到这个问题,所以想问问大家这个问题。假设我有一个如下所示的数据库表:Table:VisibilityIdValue-------0Visible1Invisible2Collapsed这只是确保引用完整性的表。它基本上是一个存储在数据库中的枚举,以确保出现在其他表中的任何可见性值始终有效。在我的前端,我有一些选择。我可以查询这个表并将它存储在Dictionary或Dictionary中。我可以手动编写一个枚举,并在表更改的罕见事件中手动编辑值。例如,publicenumVisiblity{Visible,Invisible,Collapsed}else????你会建议哪个?为什么?谢谢。对于像这样相当琐碎的事情,我通常使用枚举。我可以假设您觉得这不太对……但在我看来,这是两害相权取其轻。这样做的一些额外原因:如果由于某种原因添加了第四个值,您的代码无论如何都需要更新才能处理它。当你在这里时,更新枚举也是一件麻烦事。如果需要向表中添加新值,是否需要在应用程序中进行编码更改以支持该新值?如果是这样,枚举它。根据您的数据库,您可以将可见性字段设为枚举类型。因此,数据必须是您在创建表时指定的选项之一。如果您必须根据该表中的值在应用程序中分支代码,则需要将该表表示为枚举。如果没有,就把它改成另一个班级。这就是代码生成派上用场的地方——如果你使用的东西可以生成一个表作为枚举,你就不必担心保持表和枚举同步——只需将行添加到表和生成的业务层的下一行,枚举会自行更新。如果您有任何基于枚举的业务逻辑,那么您的主要选择是手动同步。如果这些行也是另一个表的外键(假设您有一个状态查找表),您应该将ID类型设置为具有唯一索引的常规int而不是Identity,这样如果您拥有数据库,就可以轻松维护ID/值对在不同的环境中是一样的。与ScottIvey的回答相反,我更喜欢(但很少使用)我只维护枚举的方法,并在应用程序启动时(或可能在构建事件上)使用反射来确保表值与我的枚举值匹配。这不需要任何代码生成,但很容易懒惰地检测引用约束违规。以上就是C#学习教程:同步引用完整性表和枚举分享的全部内容,如果对你有用,需要进一步了解C#学习教程,希望大家多加关注——本文是收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
