更新資料 (EntityDataSource)
更新:2007 年 11 月
您可以使用 EntityDataSource 控制項,將更新內容送出至來自資料繫結 Web 伺服器控制項的資料來源,例如 GridView、DetailsView 或 FormView 控制項。EntityDataSource 控制項會使用 ObjectContext 類別的執行個體,將更新後的值送出至資料庫。
更新資料時的考量事項
使用 EntityDataSource 控制項將更新、插入和刪除內容送出至資料來源時,以下事項必須列入考量:
若要更新資料,EnableInserts()、EnableUpdates() 或 EnableDeletes() 其中至少有一個屬性必須設為 true。
使用 EntityDataSource 控制項更新資料來源時,一次只能送出一個物件的更新。
啟用更新時,不能使用 EntityDataSource 控制項的 CommandText、Select 和 GroupBy 屬性。
透過在 ObjectContext 中加入、修改和刪除物件,您可以將更新內容送出至資料繫結控制項以外的資料來源。如需詳細資訊,請參閱 HOW TO:加入、修改和刪除物件 (Entity Framework)。呼叫 SaveChanges 方法讓資料來源認可 ObjectContext 中的變更後,請呼叫資料繫結控制項上的 DataBind 方法,使用來自資料來源的最新資料更新控制項。
將物件資料存放在檢視狀態中
為了在更新作業啟用時追蹤變更,EntityDataSource 控制項必須在頁面的檢視狀態中,存放所載入物件之原始屬性值的相關資訊。透過在 HTTP 要求之間保留物件屬性的原始值,「物件服務」可以藉由比較原始值和目前值來管理並行存取。如需「物件服務」如何管理並行存取的相關資訊,請參閱變更追蹤和識別解析 (Entity Framework)。
將這項必要資訊存放在檢視狀態中會增加頁面大小。您可以將 StoreOriginalValuesInViewState 屬性設定為 false,停用將值存放在檢視狀態中這項功能。如此一來,「物件服務」將無法追蹤已更新物件中的並行存取,您就必須實作自己的並行存取檢查。這些檢查必須確保資料繫結控制項中的更新內容不會與資料來源中的變更產生衝突。如需詳細資訊,請參閱儲存變更及管理並行存取 (Entity Framework)。