更新:2007 年 11 月
可以使用 EntityDataSource 控件,将更新从数据绑定 Web 服务器控件(如 GridView、DetailsView 或 FormView 控件)提交到数据源。EntityDataSource 控件使用 ObjectContext 类的实例,将更新的值提交到数据库。
更新数据的注意事项
在使用 EntityDataSource 控件将更新、插入和删除提交到数据源时,请考虑以下注意事项:
若要更新数据,EnableInserts()、EnableUpdates() 或 EnableDeletes() 属性中必须至少有一个属性设置为 true。
在使用 EntityDataSource 控件更新数据源时,每次只能为一个对象提交更新。
如果启用了更新,则不能使用 EntityDataSource 控件的 CommandText、Select 和 GroupBy 属性。
可以通过在 ObjectContext 中添加、修改和删除对象,将更新从数据绑定控件外部提交到数据源。有关更多信息,请参见如何:添加、修改和删除对象 (Entity Framework)。在调用 SaveChanges 方法将 ObjectContext 中的更改提交到数据源后,请对数据绑定控件调用 DataBind 方法,使用来自数据源的最新数据来更新控件。
在视图状态中存储对象数据
要在启用更新操作时跟踪更改,EntityDataSource 控件必须在页的视图状态中,存储关于加载对象的属性的原始值信息。通过在 HTTP 请求间保留对象属性的原始值,对象服务可以比较原始值和当前值,从而管理并发。有关对象服务如何管理并发的更多信息,请参见更改跟踪和标识解析 (Entity Framework)。
在视图状态中存储所需信息将增加页面大小。通过将 StoreOriginalValuesInViewState 属性设置为 false,可以禁止在视图状态中存储值。如果进行此操作,对象服务将无法跟踪更新对象中的并发,您必须实施自己的并发检查。这些检查必须确保在数据绑定控件中进行的更新不会与在数据源中所做的更改相冲突。有关更多信息,请参见保存更改和管理并发 (Entity Framework)。
请参见
概念
对象上下文生命周期管理 (EntityDataSource)