ObjectContext 類別

定義

提供用來查詢和使用實體數據做為對象的設施。

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衍生出。

建構函式

名稱 Description
ObjectContext(EntityConnection, String)

初始化一個新的類別實例 ObjectContext ,並以特定的連線和實體容器名稱。

ObjectContext(EntityConnection)

初始化一個新的類別實例 ObjectContext ,並以該連線。 建構過程中,元資料工作空間會從 EntityConnection 物件中擷取。

ObjectContext(String, String)

初始化一個新的 ObjectContext 類別實例,並以特定連接字串和實體容器名稱。

ObjectContext(String)

初始化一個新的 ObjectContext 類別實例,並使用給定的 連接字串 及預設實體容器名稱。

屬性

名稱 Description
CommandTimeout

取得或設定所有物件上下文操作的逾時值,單位為秒數。 一個 null 值表示將使用底層提供者的預設值。

Connection

取得物件上下文所使用的連線。

ContextOptions

取得 ObjectContextOptions 包含影響 行為 ObjectContext的選項的實例。

DefaultContainerName

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

MetadataWorkspace

取得物件上下文所使用的元資料工作區。

ObjectStateManager

取得物件上下文用來追蹤物件變更的物件狀態管理器。

QueryProvider

取得與此物件上下文相關聯的 LINQ 查詢提供者。

方法

名稱 Description
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()

回傳所有現有的代理類型。

GetObjectByKey(EntityKey)

回傳一個具有指定實體鍵的物件。

GetObjectType(Type)

回傳與指定類型代理物件相關聯的 POCO 實體的實體類型。

GetType()

取得目前實例的 Type

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

明確載入一個物件,該物件透過指定的導覽屬性與所提供物件相關,並使用指定的合併選項。

LoadProperty(Object, String)

透過指定的導航屬性,並使用預設合併選項,明確載入與所提供物件相關的物件。

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

透過指定的 LINQ 查詢及指定的合併選項,明確載入與所提供物件相關的物件。

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

透過指定的 LINQ 查詢及預設合併選項,明確載入與所提供物件相關的物件。

MemberwiseClone()

建立目前 Object的淺層複本。

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

以資料來源資料更新物件上下文中的一組物件。

Refresh(RefreshMode, Object)

在物件上下文中更新物件,並使用資料來源的資料。

SaveChanges()

持續保存所有資料來源的更新,並在物件上下文中重置變更追蹤。

SaveChanges(Boolean)
已淘汰.

持久化所有資料來源更新,並可選擇性地在物件上下文中重置變更追蹤。

SaveChanges(SaveOptions)

以指定的 SaveOptions. 持續化所有資料來源的更新。

ToString()

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

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

將包含實體資料列的 a DbDataReader 轉譯為請求實體類型的物件。

Translate<TEntity>(DbDataReader, String, MergeOption)

將包含實體資料列的 a DbDataReader 轉換成請求實體類型的物件,包含特定實體集合,並具備指定的合併選項。

TryGetObjectByKey(EntityKey, Object)

回傳一個具有指定實體鍵的物件。

事件

名稱 Description
ObjectMaterialized

當查詢或載入操作中,從資料來源資料建立新的實體物件時,會發生這種情況。

SavingChanges

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

適用於

另請參閱