2010-10-10 166 views

回答

0

抽象類的全部要點是從它繼承而來,並且不能直接在實例中創建。

所以在實體框架中,它表示將多個表中的數據標準化爲一個公用表,然後通過表繼承使用一組具有不同類型的對象,這些對象可以作爲一種類型處理。

假設你有一個抽象類稱爲對象和它的一些傳承有表中的數據...

然後你可以這樣寫

var results = from i in dataContext.Objects.OfType<Foo>() 
       select i 

,你也可以做到這一點

var results = from i in dataContext.Objects 
        select i 

您將獲得抽象類Object的集合,其中的每個成員都將是從對象繼承的類的實例。

這意味着您可以在子類型中擁有共同行爲或重寫行爲。它在合適的地方非常強大......例如交易類型或付款方式類型。

0

抽象類型是無法實例化的類型/類。意思是你不能從這個類創建對象。如果你有一個抽象類'foo',你不能調用new foo()(Java示例代碼)。有關抽象類型的更多信息,請參見wiki

+0

這是關於abtract類型的正確答案,雖然在實體框架中沒有(按要求)。 – 2010-10-10 17:18:38

+0

我在網上找不到任何關於* abstract class *的特定於Entity Framework的概念,與「正常」含義不同,因此這個答案看起來很合適。 – Timwi 2010-10-10 17:46:50

+0

我可能應該將抽象類型的概念指定爲一般概念,而不是綁定到實體框架的上下文。我的錯! – thomaux 2010-10-10 20:50:13

相關問題