2010-01-15 21 views
5

將int映射到枚舉中是否有將int字段映射爲EFv1中的枚舉的方法?謝謝!我希望我的實體具有枚舉字段而不是int字段。如何使用EF

回答

6

創建兩個屬性。一個映射到EF,一個作爲包裝

[EdmScalarProperty] 
public int EnumPropInteger {get;set} 
public MyEnum EnumProp 
{ 
    get { return (MyEnum) EnumPropInteger; } 
    set { EnumPropInteger = (int)value; } 
} 

不是一個好方法,因爲你有兩個公共屬性,但方式。

+0

您可以設置整型屬性是私有的,內部的,或受保護的。 – devlife 2010-01-15 19:58:44

+2

而EF可以訪問那麼這個屬性? – Arthur 2010-01-16 10:08:28

+0

@Arthur:你能解釋一下'[EdmScalarProperty]'屬性的用途嗎?我查了一下,但並沒有真正看到它在這裏增加了什麼。 – 2012-01-20 18:21:20

-2

您可以簡單地把int值枚舉這樣的:

public enum TestEnum 
{ 
Zero = 0, 
One, 
Two 
} 

TestEnum target = (TestEnum)1; 

那麼目標應該包含TestEnum.One;

編輯:我的壞,起初沒有正確解釋。你想讓地圖爲你處理劇組,對嗎?現在不知道,不得不嘗試一下。