2011-12-25 46 views
0

我有一個關於EF4的問題,並希望通過一個例子來說明它的動態關係:創建一個實體,並通過類的第一種方法

class User 
{ 

    public int Type; 
    public object Pointer; 

} 


class Admin 
{ 

    public Username; 
    public Password; 
    ... 

} 

class Manager 
{ 

    public Username; 
    public Password; 
    ... 

} 

class Member 
{ 

    public Username; 
    public Password; 
    ... 

} 

我想設計這樣的: 看看User類,如果User.Type == 1我想User.Pointer指向Admin類的一個對象,並且如果User.Type == 2我想User.Pointer指向Manager類和最後一個對象,如果User.Type == 3我想User.Pointer指向Member類的一個對象。

但我想知道它可以在EF4中設計這個怎麼做?有沒有解決方案來設計類似的東西?我可以得到一些幫助地圖詳細信息窗口在Visual Studio 2010中做到這一點?我需要諮詢的朋友,L的等待:)

問候,阿里

回答

1

是的,這是可能的EF 4,但隨後你正在嘗試現在要做的有點不同。

不是爲每個用戶類型分別創建類並定義每個類的UserName和Password等屬性,都可以使用繼承。

如果您創建基類User並在其上定義了UserNamePassword,則可繼承User中的所有其他用戶類型。

EF知道如何將其映射到數據庫併爲其使用鑑別器列,就像您所說的那樣,其中某個索引指向類類型。 Mapping Details窗口的確是可以幫助你的窗口。在這裏您可以指定鑑別器列的內容以及哪一行應指向哪個實體。

Here is some documentation如果您使用實體模型,可以幫助您進一步,如果您使用代碼優先方法,可以幫助您進一步提高or here

+0

恰好我的意思是**鑑別器列**。我再次檢查 – 2011-12-25 08:35:06

+0

感謝Wouter對你的大力幫助 – 2011-12-25 08:36:07

相關問題