假设我有以下2个SQL表:如何将查找表映射为枚举?
富
Column DataType
---------------------------
Title NVARCHAR(20)
Body NVARCHAR(MAX)
FooTypeId TINYINT
FooType
Column DataType
--------------------------
FooTypeId TINYINT
Name NVARCHAR(10)
现在,即时通讯使用的实体框架4.0自定义数据上下文和POCO实现。
我如何在设计师和我的POCO上映射这个?
我必须创建一个名为“FooTypeId”的POCO属性(类型为字节我假设),然后我公开我的枚举类型的另一个属性?
即,
public class Foo
{
public byte FooTypeId { get; set; } // for ORM - do i need this??
public FooType FooType // for most querying operations
{
get
{
return (FooType)this.FooTypeId;
}
set
{
this.FooTypeId = (int)value;
}
}
}
public enum FooType
{
Blah = 1,
Foo = 2,
Bar = 3
}
在那一刻,我甚至不具备FooType表上我的设计师,因为我想我可以尝试和“表达”这是来自于foo财产的实际FooTypeId枚举。 或者我应该在mapper上创建一个“Navigational Property”,然后在我的POCO中定义它?
我读过几年前的线程(EF1)说“EF中不支持枚举”,EF4的情况仍然如此吗?如果是这样,我在做什么正确的?
我有点迷失在这里,一些指导将不胜感激!
我用T4来做到这一点。 http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx – 2011-11-28 08:15:48