/// <summary> /// 更新操作的回调方法。 /// </summary> /// <param name="result"></param> private void OnChangesSaved(IAsyncResult result) { Dispatcher.BeginInvoke(() => { SQLServer2005DBEntities svcContext = result.AsyncState as SQLServer2005DBEntities; try { // 完成保存改变操作并显示结果。 WriteOperationResponse(svcContext.EndSaveChanges(result)); } catch (DataServiceRequestException ex) { // 显示错误信息。 WriteOperationResponse(ex.Response); } catch (InvalidOperationException ex) { messageTextBlock.Text = ex.Message; } finally { // 重新加载绑定的集合来刷新Grid,显示操作的结果。 // 你也可以删除下边的代码行,并通过刷新本也或者直接查看数据库来看操作结果。 LoadData(); } } ); }
/// <summary> /// Callback method of the update operation. /// </summary> /// <param name="result"></param> private void OnChangesSaved(IAsyncResult result) { Dispatcher.BeginInvoke(() => { SQLServer2005DBEntities svcContext = result.AsyncState as SQLServer2005DBEntities; try { // Complete the save changes operation and display the response. WriteOperationResponse(svcContext.EndSaveChanges(result)); } catch (DataServiceRequestException ex) { // Display the error from the response. WriteOperationResponse(ex.Response); } catch (InvalidOperationException ex) { messageTextBlock.Text = ex.Message; } finally { // Reload the binding collection to refresh Grid to see if it's successfully updated. // You can also remove the following line. To see the update effect, just refresh the page or check out database directly. LoadData(); } } ); }
/// <summary> /// 本方法中,发送一个异步的REST请求到ADO.NET Data Service来获得 CourseGrade 数据 /// 我们扩展了 Person 以及 Course,所以外部记录也会被返回到客户端。 /// </summary> private void LoadData() { _entities = new SQLServer2005DBEntities(new Uri(_schoolLinqToEntitiesUri)); DataServiceQuery<CourseGrade> query = (DataServiceQuery<CourseGrade>)( from c in _entities.CourseGrade.Expand("Person").Expand("Course") select c); query.BeginExecute(OnCourseGradeQueryComplete, query); }