/// <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);
        }