【发布时间】:2013-11-29 15:26:31
【问题描述】:
假设您有两个表 - Orders 和 OrderStates - 并且每个 Order 都处于特定状态的明显关系。假设两者都有一个 int 主键 ID。订单状态永远不会改变,并且仅出于设计和用户界面目的而存储在数据库中。话虽如此,您将希望创建一个表示订单状态的 Enum 类型。但是,实体框架已经使用 order state int value/key 生成了类。
给定问题的可能解决方案是什么?请记住,如果您愿意,问题是关于 EF1 或 EF .NET 3.5,并且您从已经设计好的数据库开始(数据库优先方法)。我使用旧版本是因为我目前正在为 Sharepoint 2010 开发一个在 .NET 3.5 上运行的应用程序。
我只找到了 EF4 或更高版本的解决方案,例如: Enum Support for Entity Framework Database First
为了更清楚,我想避免一直转换 int。生成的代码强制您编写:
(OrderStates)OrderState.State == OrderState.StateX;
或
OrderState.State == (int)OrderState.StateX;
如果您只遇到一次这种情况可能没问题,但通常情况并非如此。枚举的代码可读性也高于一些 int 值。
【问题讨论】:
-
我真的很困惑为什么你不能只建立一个
enum。你已经说过桌子不会改变。 -
我已经编辑了这个问题。我希望现在更清楚了。
标签: c# .net-3.5 operators operator-overloading