【发布时间】:2011-04-08 14:48:03
【问题描述】:
假设我有以下 2 个 SQL 表:
Foo
Column DataType
---------------------------
Title NVARCHAR(20)
Body NVARCHAR(MAX)
FooTypeId TINYINT
FooType
Column DataType
--------------------------
FooTypeId TINYINT
Name NVARCHAR(10)
现在,我使用带有自定义数据上下文和 POCO 实现的 Entity Framework 4.0。
如何将其映射到设计师和我的 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 的枚举。 还是我应该在映射器上创建一个“导航属性”,然后在我的 POCO 中定义它?
我读过几年前 (EF1) 的线程说“EF 不支持枚举”,EF4 仍然是这种情况吗?如果是,我做的对吗?
我有点迷路了,非常感谢一些指导!
【问题讨论】:
-
我已经使用 T4 来执行此操作。 hanselman.com/blog/…
标签: c# .net entity-framework-4 enums poco