【发布时间】:2011-09-27 09:57:46
【问题描述】:
我在 SQL Server 中有这样的数据模型:
table Note
- varchar NoteText
- tinyint PriorityLevel
在我的代码中,Entity Framework 把它变成了一个类:
class Note
- string NoteText
- byte PriorityLevel
在代码中我还有一个 PriorityLevel 枚举,这使我的代码更具可读性:
public enum PriorityEnum : byte
{
NORMAL = 10,
IMPORTANT = 20,
URGENT = 30
}
所以,我想直接将该枚举与我的 Note 对象一起使用,例如 myNote.PriorityLevel = PriorityEnum.NORMAL,而不是像 myNote.PriorityLevel = (byte)PriorityEnum.NORMAL 那样一直强制转换。
我已经有了通过使用Partial 类声明的解决方案,但我最终得到了两个名称相似的属性,它们映射到底层的 PriorityLevel,这很混乱:
class Note
- string NoteText
- byte PriorityLevel
- PriorityEnum PriorityLevelEnum (gets/sets PriorityLevel)
当然,我希望我的 EF 类可以简单地定义为:
class Note
- string NoteText
- PriorityEnum PriorityLevel
仅供参考,我正在使用 POCO 生成我的 EF 实体类,因此我认为解决方案可能涉及更改生成它们的 T4 模板,但我担心我错过了一些简单的东西。我认为通过更改 EDMX 设计器中的字段定义可能会有解决方案,但我担心下次我从数据库定义更新 EDMX 时它们可能会被覆盖。
【问题讨论】:
标签: .net entity-framework entity-framework-4 t4