作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
假设我有以下 2 个 SQL 表:
福
Column DataType
---------------------------
Title NVARCHAR(20)
Body NVARCHAR(MAX)
FooTypeId TINYINT
FooType
Column DataType
--------------------------
FooTypeId TINYINT
Name NVARCHAR(10)
现在,我将 Entity Framework 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 的枚举。或者我应该在映射器上创建一个“导航属性”,然后在我的 POCO 中定义它?
我读过几年前 (EF1) 的帖子,说“EF 不支持枚举”,EF4 是否仍然如此?如果是,我的做法对吗?
我有点迷路了,非常感谢一些指导!
最佳答案
目前,EF4 本身不支持枚举。
我已经看到 AlexJ 的一个很好的变通方法,它工作得很好(虽然代码量很大),http://blogs.msdn.com/b/alexj/archive/2009/06/05/tip-23-how-to-fake-enums-in-ef-4.aspx
我还听说下一版本的 EF4 中将提供此 native 枚举支持,但谁知道确切的发布时间。
关于c# - 如何将查找表映射到枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3648956/
我是一名优秀的程序员,十分优秀!