技术开发 频道

Silverlight 3 RIA服务与ADO.NET集成

  注意,上面代码仅实现了基本的产品信息数据查询与加载,不再赘述。

  现在运行应用程序,你将得到如下所示的快照:

  上面的代码仅仅通过一个网格控件显示所有表格数据。

  接下来,我们将在前面界面中添加一个“保存”按钮,以便当用户更改完网格控件中的数据后,可以通过它保存到服务器端。

  返回到文件MainPage.xaml中,紧接着DataGrid控件下部添加如下代码:

<StackPanel Grid.Row="1" Orientation="Horizontal">
<Button Content="保存修改结果" Click="SaveChanges_Click" />
</StackPanel>

  下面给出的是相应于上面保存按钮的Click事件处理器函数:

private void SaveChanges_Click(object sender, RoutedEventArgs e)
{
    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,然后单击“添加”按钮,如下图所示。

0
相关文章