簡體   English   中英

如何將查找表映射到枚舉?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM