2013-05-09 104 views
1

在學習實體框架的教程中,他們不斷提及實體。我經常看到它被用作數據庫上下文類中的dbsets<>的同義詞,但它的字面含義是什麼?實體框架中的實體是什麼?

我已經知道實體框架是如何工作的,我只是不明白這個詞的意思。

回答

2

在實體框架的實體是大體上相當於一個類在概念模型(或類模型,其被映射到存儲模型)。

在域模型項的實體是

不是由它的屬性定義的一個對象,而是由連續性和其身份的一個線程。

(來源:Wikipedia

,對於 「具有標識的對象」 相當一口,而不是一個值對象,就像一個DateTime或(可能)一個Address。 A Customer是一個實體,因爲它是由他的「誰」來確定的。兩名同名客戶仍然是兩名客戶。

因此實體可以鬆散地定義爲業務域所關注的「事物」。客戶/用戶和系統設計人員/開發人員都在無處不在的語言中討論。在EF中,這些東西由類表示。

所以它的不是DbSetDbSet是提供實體對象的存儲庫。

我經常看到人們指的是實體模型。我不知道這個術語的起源(它似乎常常是巧合),但我認爲這不正確。這大多令人困惑。 EF中的模型是商店模型或概念模型,因此它是實體的集合。模型也可以是包含任意數量實體的任意數量屬性的視圖模型。

+0

什麼是領域模型?我知道模型就像一個類,它可以初始化包含整個程序中使用的數據的對象,但關於「域」的整個事情是什麼?我已經在整個MVC文章中看到過這個詞多次使用。 – user1534664 2013-05-09 15:24:44

+0

它廣泛用作應用程序業務邏輯的核心所在的面向對象的類模型。當這些類真正實現行爲並且它們不是貧血類時,它可能與實體框架類模型同義。 – 2013-05-09 16:12:14

0

實體只是表示某種形式的關係數據的對象。這通常用於表示關係數據庫,但不僅限於此。我建議查看http://msdn.microsoft.com/en-us/data/aa937709以獲得實體框架如何工作的簡要概述。

+0

感謝您的回覆。在那個網站上,他們使用單詞實體而不告訴我他們究竟是什麼。我不明白你的解釋:\我的DbContext類是一個實體嗎?或者是那些實體中的dbset? – user1534664 2013-05-09 12:43:54

+0

實體只是您正在使用的關係對象的佔位符名稱。如果您要從SQL服務器提取數據,那麼實體就是您要從中提取的表或視圖。然而,這是抽象的,因爲實體數據模型(通常是一個與所討論的實體的輸出相同的字段)是您在應用程序中實際編碼的內容。它是一個非常廣泛的主題,不能用簡單的堆棧溢出響應來解釋。 – 2013-05-09 12:58:26

1

讓我們一個Person對象,例如,讓說的人數據被髮布到一個數據庫及其通過層次

移動當它在我的UI,我把它叫做一個角色模型或視圖模型。

當我在業務層中將其稱爲Person業務對象時。

當它在我的數據層中時,我稱之爲Person Entity。

它是移動到不同層次的不同對象中的相同數據。該實體只是在數據訪問層中保存個人數據的對象的名稱....