技术开发 频道

SQL Server 2008构建偶尔连接系统

练习 3:向 N 层应用程序添加本地数据库缓存

Visual Studio 上下文中的“本地数据库缓存”是 SQL Server Compact 3.5 数据库,该数据库配置为使用 Microsoft Synchronization Services for ADO.NET 与远程数据库进行数据同步。

在本演练中,您将学习如何执行以下任务:
向项目中添加本地数据库缓存项。
配置数据同步。
将同步操作合并到现有数据服务中。
修改用于加载数据的代码,使其从本地数据库缓存中检索 Customers 表。
添加代码以启动同步进程。

打开 NTierWalkthrough 解决方案

1. 在“File”菜单上指向“Open”,单击“Project/Solution”,然后定位到C:\SQLHOLS\OCS\NTierWalkthrough\NTierWalkthrough.sln 文件,点击OK。

向 NTierWalkthrough 添加本地数据库缓存

由于本地数据库缓存是一个位于客户端上的 SQL Server Compact 3.5 数据库,因此将本地数据库缓存添加到 PresentationTier 项目。由于本演练将演示如何缓存 Customers 表,因此将本地数据库缓存命名为 CustomersCache。
注意:在本演练中,本地数据库缓存因为只使用了 Customers 表而被命名为 CustomersCache,但其实可以向本地数据库缓存添加多个表。

1. 在“Solution Explorer”中右击“PresentationTier”,再单击“Add New Item”。
2. 单击“Local Database Cache”模板。
3. 在“Name”中键入“CustomersCache”。
4. 单击“Add”。
5. “Configure Data Synchronization”对话框随即打开。

在 n 层应用程序中配置数据同步

若要配置数据同步,请先选择到服务器的数据连接,再选择要缓存到应用程序本地的表。对于本演练,请将服务器连接设置为 Northwind 数据库的 SQL Server 版本,并将 Customers 表添加到本地缓存。此外,由于是将本地数据库缓存添加到一个 n 层应用程序,因此还必须设置高级选项,以将服务器同步组件生成到一个单独的项目 DataService 中。

1. 将“Server Connection”设置为 Northwind 数据库的 SQL Server 版本。
2. 单击“Add”按钮以打开“Configure Tables for Offline Use”对话框。
3. 选中与“Customers”表相关联的复选框,然后单击“OK”。(保留默认值。)
4. 单击“Advanced”。
5. 在“Server Item Locations”列表中选择“DataService”。
6. 单击“OK”。
7. 将生成同步组件,首次同步数据(在项目中创建本地数据库并填充数据),同时打开数据源配置向导。
8. 选择“Customers”表,然后在“Select Database Objects”页上选中与之关联的复选框。
9. 键入 LocalNorthwindCustomers 作为“DataSet Name”,然后单击“OK”。

向 App.config 文件中添加服务信息

生成的同步组件已添加到 DataService 项目中,但还需要通过服务来实现它们。生成的 SyncContract 包含服务所需的信息。此信息在文件中显示为注释。将必要的信息复制到服务的 App.config 文件中的相应部分。

1. 在“Solution Explorer”中双击 CustomersCache.Server.SyncContract 文件以将其打开。
2. 找到与下面的内容类似的命令行:
<endpoint address ="" binding="wsHttpBinding" contract="DataService.ICustomersCacheSyncContract"/>
3. 复制该命令行(不含注释字符)。
4. 在“Solution Explorer”中双击 DataService 的 App.config 文件以打开该文件。
5. 找到 <!-- Metadata Endpoints --> 注释。在以 <endpoint address = "mex" 开头的命令行下面添加在步骤 3 中复制的命令行。
6. 为刚粘贴的终结点地址键入一个名称(例如“SyncServer”),这样就有了与下面的内容类似的代码:
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<endpoint address ="SyncServer" binding="wsHttpBinding" contract="DataService.ICustomersCacheSyncContract"/>
7. 在“Build”菜单上单击“Build Solution”。

0
相关文章