我首先遵循數據庫方法;我在SQL Server 2008數據庫中創建了表,然後使用ADO.NET實體數據模型將這些表映射到實體框架類。但是,當我打開designer.cs文件,我發現在類定義下面的代碼自動創建:爲什麼實體框架在使用ADO.NET實體數據模型映射數據庫表時,自動使用ObjectContext而不是DbContext
public partial class PortalEntities : ObjectContext
所以我就以下三個問題是讓我困惑:
爲什麼我的
PortalEntities
類是從ObjectContext
派生而不是DbContext
,因爲我期待?有
ObjectContext
&DbContext
之間的主要區別,或者他們主要是相同的,並且提供相同的功能當我嘗試寫類似下面的代碼的東西:
Student student = db.Students.Find(id);
我發現我不能使用.Find()
方法,因爲我以前使用DbContext
來做,所以這是否意味着ObjectContext
& DbContext
有不同的方法,我可以使用?
BR
感謝您的回覆;但是我會從我的數據庫apprach中首先使用DbContext而不是ObjectContext中獲益嗎? –
DbContext具有簡化的界面。它會更容易使用,並且如果有必要,你總是可以將它轉換爲ObjectContext。此外,DbContext更容易模擬單元測試的目的。 –
清楚的解釋!謝謝 – GibboK