2013-02-13 85 views
17

之間的區別:什麼是從<code>MSDN</code>的DbContext和ObjectContext的

表示單位作業內容和信息庫模式的組合,使您能夠查詢數據庫,並組合在一起,然後將寫回修改作爲一個單位的商店。 DbContext在概念上與ObjectContext相似。

我雖然DbContext只處理連接到數據庫和對數據庫的線程數。

現在我明白它包含跟蹤機制?我以爲這是在ObjectContext

那麼,他們之間的區別是什麼?

回答

21

DbContext是ObjectContext類的輕量級版本,幾乎放在ObjectContext的頂部(甚至有一種方法可以從DbContext獲取ObjectContext)。使用IMO也很容易,並且使得CRUD操作成爲可能。

如需瞭解更多信息,最好查看比Julie Lerman更多關於差異的信息,如EF 4.1中所述。

+0

檢查此[文章](HTTP:/ /www.c-sharpcorner.com/UploadFile/ff2f08/objectcontext-vs-dbcontext/)瞭解更多 – stom 2015-10-16 15:44:22

5

DbContext是一個較小的API,暴露了ObjectContext最常用的 功能。在某些情況下,這些功能將在DbContext API中進行鏡像。在其他情況下,實體框架團隊通過向我們提供像Find或DbSet.Local等屬性的方法來簡化更復雜的編碼 。但是 是一個潛在的大API,您可能仍然需要訪問它。例如,您可能需要 直接與MetadataWorkspace一起編寫針對類 的通用代碼,因爲該API可以比反射更高效地讀取模型。此外,MetadataWorkspace能夠提供有關元數據的更多信息,而不是您可以通過反射發現,例如,關鍵屬性。或者您可能希望 利用通過實體SQL, 公開的數據庫特定功能,而這些功能無法從LINQ訪問實體。 或者你可能已經有一個應用程序 使用ObjectContext的書面和你希望利用的DbContext在未來的更新 無需更換所有的ObjectContext代碼(從編程的DbContext參考)

相關問題