ObjectContext 類別

定義

提供以物件形式查詢和使用實體 (Entity) 資料的機能。

public ref class ObjectContext : IDisposable
public class ObjectContext : IDisposable
type ObjectContext = class
    interface IDisposable
Public Class ObjectContext
Implements IDisposable
繼承
ObjectContext
實作

範例

此範例示範如何建構 ObjectContext

// Create the ObjectContext.
ObjectContext context =
    new ObjectContext("name=AdventureWorksEntities");

// Set the DefaultContainerName for the ObjectContext.
// When DefaultContainerName is set, the Entity Framework only
// searches for the type in the specified container.
// Note that if a type is defined only once in the metadata workspace
// you do not have to set the DefaultContainerName.
context.DefaultContainerName = "AdventureWorksEntities";

ObjectSet<Product> query = context.CreateObjectSet<Product>();

// Iterate through the collection of Products.
foreach (Product result in query)
    Console.WriteLine("Product Name: {0}", result.Name);

備註

注意

ObjectContext 類別不具備執行緒安全。 無法在多執行緒案例中確保資料物件 ObjectContext 的完整性。

類別 ObjectContext 是用來與資料互動的主要類別,做為概念模型中定義之實體類型實例的物件。 ObjectContext 類別的執行個體會封裝下列項目:

當實體資料模型工具產生代表概念模型的物件層時,代表 EntityContainer 模型的 類別衍生自 ObjectContext

建構函式

ObjectContext(EntityConnection)

使用給定的連接,初始化 ObjectContext 類別的新執行個體。 在建構期間,系統會從 EntityConnection 物件中擷取中繼資料工作空間。

ObjectContext(EntityConnection, String)

使用給定的連接和實體容器名稱,初始化 ObjectContext 類別的新執行個體。

ObjectContext(String)

使用給定的連接字串和預設實體容器名稱,初始化 ObjectContext 類別的新執行個體。

ObjectContext(String, String)

使用給定的連接字串 (Connection String) 和實體容器 (Container) 名稱,初始化 ObjectContext 類別的新執行個體。

屬性

CommandTimeout

取得或設定所有物件內容作業的逾時值 (以秒為單位)。 null 值表示將會使用基礎提供者 (Provider) 的預設值。

Connection

取得物件內容所使用的連接。

ContextOptions

取得 ObjectContextOptions 執行個體,這個執行個體包含影響 ObjectContext 之行為的選項。

DefaultContainerName

取得或設定預設容器名稱。

MetadataWorkspace

取得物件內容所使用的中繼資料工作空間。

ObjectStateManager

取得內容物件用來追蹤物件變更的物件狀態管理員。

QueryProvider

取得與這個物件內容相關聯的 LINQ 查詢提供者。

方法

AcceptAllChanges()

接受對物件內容中之物件所做的所有變更。

AddObject(String, Object)

將物件加入至物件內容。

ApplyCurrentValues<TEntity>(String, TEntity)

將純量值從提供的物件複製到 ObjectContext 中具有相同索引鍵的物件。

ApplyOriginalValues<TEntity>(String, TEntity)

從提供的物件將純量值複製至 ObjectContext 中具有相同索引鍵之物件的原始值組。

ApplyPropertyChanges(String, Object)
已淘汰.

將已中斷連結物件中的屬性變更套用至已經附加至物件內容的物件。

Attach(IEntityWithKey)

當物件具有實體索引鍵時,將物件或物件圖形附加至物件內容。

AttachTo(String, Object)

將物件或物件圖形附加至位於特定實體集中的物件內容。

CreateDatabase()

使用目前資料來源連接和 StoreItemCollection 中的中繼資料,建立資料庫。

CreateDatabaseScript()

產生資料定義語言 (DDL) 指令碼,這個指令碼會針對 StoreItemCollection 中的中繼資料建立結構描述物件 (資料表、主索引鍵、外部索引鍵)。 StoreItemCollection 會從存放結構定義語言 (SSDL) 檔載入中繼資料。

CreateEntityKey(String, Object)

建立特定物件的實體索引鍵,或傳回實體索引鍵 (如果已經存在的話)。

CreateObject<T>()

建立和傳回所要求之類型的執行個體。

CreateObjectSet<TEntity>()

建立新的 ObjectSet<TEntity> 執行個體,這個執行個體用來查詢、加入、修改和刪除指定之實體型別的物件。

CreateObjectSet<TEntity>(String)

建立新的 ObjectSet<TEntity> 執行個體,這個執行個體用來查詢、加入、修改和刪除具有指定之型別和指定之實體集名稱的物件。

CreateProxyTypes(IEnumerable<Type>)

針對所提供之列舉中的每一個型別,產生可以與 Entity Framework 一起使用的對等型別。

CreateQuery<T>(String, ObjectParameter[])

使用指定的查詢字串,在目前的物件內容中建立 ObjectQuery<T>

DatabaseExists()

檢查在目前資料來源連接中指定為資料庫的資料庫是否存在於資料來源上。

DeleteDatabase()

刪除在目前資料來源連接中指定為資料庫的資料庫。

DeleteObject(Object)

將物件標記為待刪除。

Detach(Object)

從物件內容中移除物件。

DetectChanges()

確保 ObjectStateEntry 變更與 ObjectStateManager 所追蹤之所有物件中的變更同步化。

Dispose()

釋放物件內容所使用的資源。

Dispose(Boolean)

釋放物件內容所使用的資源。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
ExecuteFunction(String, ObjectParameter[])

執行資料來源中所定義和以概念模型表示的預存程序或函式、捨棄函式傳回的任何結果,然後傳回受執行所影響的資料列數目。

ExecuteFunction<TElement>(String, MergeOption, ObjectParameter[])

使用指定的參數和合併選項,執行資料來源中所定義和以概念模型表示之指定的預存程序或函式。 傳回具型別的 ObjectResult<T>

ExecuteFunction<TElement>(String, ObjectParameter[])

使用指定的參數,執行資料來源中所定義且在概念模型中有所對應的預存程序或函式。 傳回具型別的 ObjectResult<T>

ExecuteStoreCommand(String, Object[])

使用現有的連接,直接針對資料來源執行任意命令。

ExecuteStoreQuery<TElement>(String, Object[])

直接針對資料來源執行查詢,並傳回具型別的結果序列。

ExecuteStoreQuery<TEntity>(String, String, MergeOption, Object[])

直接針對資料來源執行查詢,並傳回具型別的結果序列。 指定實體集和合併選項,以便能夠以實體形式追蹤查詢結果。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetKnownProxyTypes()

傳回所有現有的 Proxy 型別。

GetObjectByKey(EntityKey)

傳回具有指定之實體索引鍵的物件。

GetObjectType(Type)

傳回與所指定型別的 Proxy 物件相關聯的 POCO 實體的實體型別。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
LoadProperty(Object, String)

由指定的巡覽屬性和使用預設合併選項,明確地載入所提供之物件的相關物件。

LoadProperty(Object, String, MergeOption)

由指定的巡覽屬性和使用指定的合併選項,明確地載入所提供之物件的相關物件。

LoadProperty<TEntity>(TEntity, Expression<Func<TEntity,Object>>)

由指定的 LINQ 查詢和使用預設的合併選項,明確地載入所提供之物件的相關物件。

LoadProperty<TEntity>(TEntity, Expression<Func<TEntity,Object>>, MergeOption)

由指定的 LINQ 查詢和使用指定的合併選項,明確地載入所提供之物件的相關物件。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
Refresh(RefreshMode, IEnumerable)

使用資料來源中的資料,更新物件內容中的物件集合。

Refresh(RefreshMode, Object)

使用資料來源中的資料,更新物件內容中的物件。

SaveChanges()

將所有更新保存至資料來源並且重設物件內容中的變更追蹤。

SaveChanges(Boolean)
已淘汰.

將所有更新保存至資料來源,並且選擇性地重設物件內容中的變更追蹤。

SaveChanges(SaveOptions)

使用指定的 SaveOptions,將所有更新保存至資料來源。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
Translate<TElement>(DbDataReader)

將包含實體資料之資料列的 DbDataReader,轉譯成所要求的實體型別。

Translate<TEntity>(DbDataReader, String, MergeOption)

在特定的實體集並使用指定的合併選項,將包含實體資料之資料列的 DbDataReader 轉譯為所要求之實體型別的物件。

TryGetObjectByKey(EntityKey, Object)

傳回具有指定之實體索引鍵的物件。

事件

ObjectMaterialized

在查詢或載入作業中從資料來源中的資料建立新的實體物件時發生。

SavingChanges

當變更儲存至資料來源時發生。

適用於

另請參閱