Asp.net
為什麼Entity Framework在使用ADO.NET實體數據模型映射數據庫表時會自動使用ObjectContext而不是DbContext
我首先遵循數據庫方法;我已經在我的 SQL Server 2008 數據庫中創建了這些表,然後我使用 ADO.NET 實體數據模型將這些表映射到實體框架類。但是當我打開 Designer.cs 文件時,我在自動創建的類定義中發現了以下程式碼:
public partial class PortalEntities : ObjectContext所以我有以下三個問題讓我感到困惑:
- 為什麼我的
PortalEntities課程源自ObjectContext而不是DbContext我所期望的?ObjectContext&之間是否有主要區別DbContext,或者它們基本相同並提供相同的功能- 當我嘗試編寫類似於以下程式碼的內容時:
Student student = db.Students.Find(id);我發現我不能像以前那樣使用
.Find()方法 usingDbContext,這是否意味著ObjectContext&DbContext有不同的方法可以使用?BR
這
DbContext是一個包裝器,ObjectContext它簡化了我們最常做的事情的界面。如果你有一個
DbContext你仍然可以訪問ObjectContext低谷((IObjectContextAdapter)dbContext).ObjectContext;如果您想在首先使用數據庫時使用
DbContext而不是ObjectContext使用,您可以切換用於生成程式碼的模板。您可以通過右鍵點擊 EDMX 並選擇“添加程式碼生成項”來執行此操作。然後,您可以選擇 DbContext 模板。這是整個過程的一個例子。