[英]How to map lookup table to enum?
假設我有以下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屬性(字節我假設),然后我公開我的枚舉類型的另一個屬性?
IE瀏覽器。
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的情況是否仍然如此? 如果是的話,我正在做什么?
我有點迷失在這里,一些指導將不勝感激!
目前,EF4本身不支持枚舉。
我已經看到了AlexJ的一個很好的解決方法,它運行得很好(雖然代碼很重), http://blogs.msdn.com/b/alexj/archive/2009/06/05/tip-23-how-to -fake-枚舉功能於EF-4.aspx
我也聽說過這個本機枚舉支持將在EF4的下一個版本中出現,但是誰知道它將在何時發布。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.