注意,上面代码仅实现了基本的产品信息数据查询与加载,不再赘述。
现在运行应用程序,你将得到如下所示的快照:
上面的代码仅仅通过一个网格控件显示所有表格数据。
接下来,我们将在前面界面中添加一个“保存”按钮,以便当用户更改完网格控件中的数据后,可以通过它保存到服务器端。
返回到文件MainPage.xaml中,紧接着DataGrid控件下部添加如下代码:
<Button Content="保存修改结果" Click="SaveChanges_Click" />
</StackPanel>
下面给出的是相应于上面保存按钮的Click事件处理器函数:
{
SubmitOperation submitOp = this._domain.SubmitChanges();
submitOp.Completed += delegate
{
if (submitOp.Error == null)
{
MessageBox.Show("已经成功保存到服务器端。");
}
else
{
MessageBox.Show(string.Format("发生保存错误: {0}", submitOp.Error.ToString()));
}
};
}
现在,重新构建并运行应用程序。之后,在网格中修改某个数据,并单击保存按钮,然后再试着刷新示例页面并使数据重新加载,你会注意到上面的修改的确被保存到了服务端。
至此,我们已经拥有了一个具备基本功能的应用程序。接下来,我们可以基于微软.NET RIA服务提供的机制进一步丰富这个应用程序。例如,在实体类型上添加校验属性及定制校验代码,或者提供基于DataPager和DataForm等控件的更丰富的用户接口,等等。但是,我们的兴趣点不在于此。
从下一节开始,我们将讨论如何把一个ADO.NET数据服务接口添加到现有的应用程序中。
5.添加ADO.NET数据服务
至此,我们的示例应用程序的客户端和服务器已经可以利用.NET RIA服务的现有机制进行通信了。
在本节中,我们将增加一个ADO.NET数据服务,并将分析ADO.NET数据服务协议的传输情况。下面,我们将修改客户端层以便使用ADO.NET数据服务协议。
为了把ADO.NET数据服务添加到应用程序中,请执行下列步骤:
(1) 右键单击解决方案资源管理器中的ProductsWithDataService.Web项目,选择“添加—新项目”。
(2) 在“添加新项目”对话框中,选择“Domain ADO.NET Data Service”,将它命名为ProductsDataService.svc,然后单击“添加”按钮,如下图所示。