更新: 2008 年 7 月
本演练演示如何创建一个 ASP.NET Web 应用程序承载的简单的 ADO.NET 数据服务,然后从 Windows 窗体应用程序中访问它。
在此演练中,将:
创建一个 Web 应用程序以承载 ADO.NET 数据服务。
创建一个表示 Northwind 数据库中 Customers 表的 实体数据模型。
创建一个 ADO.NET 数据服务。
创建一个客户端应用程序并添加对 ADO.NET 数据服务的引用。
启用对该服务的数据绑定并生成用户界面。
可以选择向应用程序添加筛选功能。
先决条件
您需要以下组件来完成本演练:
Northwind 示例数据库。
如果没有在开发计算机中安装此数据库,可以从 Microsoft Download Center(Microsoft 下载中心)进行下载。有关说明,请参见下载示例数据库 (LINQ to SQL)。
创建服务
若要创建 ADO.NET 数据服务,您应添加一个 Web 项目,创建一个 实体数据模型,然后通过此模型创建服务。
首先,将添加一个 Web 项目以承载服务。
![]() |
---|
对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您使用的 Visual Studio 版本及设置。有关更多信息,请参见Visual Studio 设置。 |
创建 Web 项目
在 Visual Studio 的“文件”菜单上单击“新建项目”。
在“新建项目”对话框中,展开“Visual Basic”或“Visual C#”节点,接着单击“Web”,然后选择“ASP .NET Web 应用程序”。
在“名称”字段中,键入“NorthwindWeb”,然后单击“确定”创建项目。
在此步骤中,您将创建一个表示 Northwind 数据库中 Customers 表的 实体数据模型。
创建实体数据模型
在“项目”菜单上单击“添加新项”。
在“添加新项”对话框中,选择“ADO.NET 实体数据模型”。
在“名称”字段中,键入 NorthwindModel,然后单击“添加”。
将显示实体数据模型向导。
在实体数据模型向导中,选择“从数据库生成”,然后单击“下一步”。
在“选择您的数据连接”页上执行下列步骤之一:
如果下拉列表中包含与 Northwind 示例数据库的数据连接,请单击该连接。
- 或 -
单击“新建连接”来配置新的数据连接。有关更多信息,请参见如何:创建与 SQL Server 数据库的连接。
如果数据库需要密码,请选择该选项以包括敏感数据,再单击“下一步”。
说明:
如果出现一个对话框,请单击“是”将该文件保存到您的项目中。
在“选择数据库对象”页中,展开“表”节点,选中“Customers”旁边的复选框,然后单击“完成”。
随即显示实体模型关系表,NorthwindModel.edmx 文件也将添加到项目中。
在此步骤中,您将创建并测试数据服务。
创建数据服务
在“项目”菜单上单击“添加新项”。
在“添加新项”对话框中,选择“ADO.NET 数据服务”。
在“名称”字段中,键入 NorthwindCustomers,然后单击“添加”。
NorthwindCustomers.svc 文件将显示在“代码编辑器”中。
在“代码编辑器”中,定位到第一个 TODO: 注释并使用以下内容替换该代码:
Inherits DataService(Of NORTHWINDModel.NORTHWINDEntities)
public class NorthwindCustomers : DataService<NORTHWINDModel.NORTHWINDEntities>
说明:
根据所使用的 Northwind 数据库的版本,您可能需要将“NORTHWIND”更改为“NORTHWND”。还可以使用 IntelliSense 来发现正确的名称。
使用下面的代码替换 InitializeService 事件处理程序中的注释:
config.SetEntitySetAccessRule("*", EntitySetRights.All)
config.SetEntitySetAccessRule("*", EntitySetRights.All);
按“Ctrl+F5”运行此服务。将打开一个浏览窗口,并显示该服务的 XML 架构。
在“地址”栏中 NorthwindCustomers.svc 的 URL 末尾处键入 Customers,然后按“Enter”。
Customers 表中的数据将以 XML 表示形式显示。
说明:
某些情况下,Internet Explorer 会将数据错误解释为 RSS 源。必须确保禁用显示 RSS 源的选项。有关更多信息,请参见服务引用疑难解答。
关闭浏览器窗口。
在接下来的步骤中,将创建一个 Windows 窗体客户端应用程序以使用该服务。
创建客户端应用程序
若要创建客户端应用程序,您将另外添加一个项目,添加对该项目的服务引用,配置数据源,并创建一个用户界面以显示服务中的数据。
在第一个步骤中,您将 Windows 窗体项目添加到解决方案中,并将其设置为启动项目。
创建客户端应用程序
在 Visual Studio“文件”菜单上单击“添加”,然后单击“新建项目”。
在“新建项目”对话框中,展开“Visual Basic”或“Visual C#”节点,接着单击“Windows”,然后选择“Windows 窗体应用程序”。
在“名称”字段中,键入 NorthwindClient,然后单击“确定”打开项目。
在“解决方案资源管理器”中,选择 NorthwindClient 项目。
在“项目”菜单上单击“设为启动项目”。
在此步骤中,将添加对 Web 项目中的 ADO.NET 数据服务的服务引用。
添加服务引用
在“项目”菜单上单击“添加服务引用”。
在“添加服务引用”对话框中,单击“发现”。
NorthwindCustomers 服务的 URL 将显示在“地址”字段中。
单击“确定”以添加此服务引用。
在此步骤中,将配置数据源以启用对服务的数据绑定。
启用对服务的数据绑定
在“数据”菜单上单击“显示数据源”。
在“数据源”窗口中,单击“添加新数据源”。
在“数据源配置向导”的“选择数据源类型”页上,单击“对象”,然后单击“下一步”。
在“选择希望绑定到的对象”页上,展开“NorthwindClient”节点,然后展开“NorthwindClient.ServiceReference1”节点。
选择“Customers”,然后单击“完成”。
在此步骤中,您将创建用于显示服务中的数据的用户界面。
创建用户界面
将“Customers”节点从“数据源”窗口拖动到窗体中。
一个 DataGridView 控件、一个 BindingSource 组件以及一个 BindingNavigator 组件将添加到窗体中。
双击窗体以打开代码编辑器,然后向 Form1_Load 事件处理程序添加以下代码:
Dim proxy As New ServiceReference1.NORTHWINDEntities _ (New Uri("https://localhost:14735/NorthwindCustomers.svc")) Me.CustomersBindingSource.DataSource = proxy.Customers
ServiceReference1.NORTHIWNDEntities proxy = new ServiceReference1.NORTHIWNDEntities(new Uri("https://localhost:14735/NorthwindCustomers.svc")); this.customersBindingSource.DataSource = proxy.Customers;
说明:
根据所使用的 Northwind 数据库的版本,您可能需要将“NORTHWIND”更改为“NORTHWND”。还可以使用 IntelliSense 来发现正确的名称。
在“解决方案资源管理器”中,右击 NorthwindCustomers.svc 文件,然后单击“在浏览器中查看”。Internet Explorer 随即打开,并显示该服务的 XML 架构。
从 Internet Explorer 地址栏中复制 URL。
在步骤 2 中添加的代码中,选择 https://localhost:14735/NorthwindCustomers.svc 并使用刚刚复制的 URL 替换它。
按 F5 运行该应用程序。即会显示客户信息。
现在,您有了一个可以使用的应用程序,该应用程序将显示 NorthwindCustomers 服务中的客户的列表。如果希望通过该服务公开其他数据,则可以修改实体数据模型以包括 Northwind 数据库中的其他表。
在下一个可选步骤中,将学习如何筛选服务返回的数据。
添加筛选功能
在此步骤中,将自定义应用程序以根据客户的城市筛选数据。
添加根据城市进行筛选的功能
在“解决方案资源管理器”中,双击“Form1.vb”或“Form1.cs”以显示 Windows 窗体设计器。
双击 Button 控件,然后在 Button1_Click 事件处理程序中添加以下代码:
Dim proxy As New ServiceReference1.NORTHWINDEntities _ (New Uri("https://localhost:14735/NorthwindCustomers.svc")) Dim city As String = TextBox1.Text If city <> "" Then Me.CustomersBindingSource.DataSource = From c In _ proxy.Customers Where c.City = city End If
ServiceReference1.NORTHWINDEntities proxy = new ServiceReference1.NORTHWINDEntities(new Uri("https://localhost:14735/NorthwindCustomers.svc")); string city = textBox1.Text; if (city != "") { this.customersBindingSource.DataSource = from c in proxy.Customers where c.City == city select c;
在以上代码中,使用 Form1_Load 事件处理程序中的 URL 替换 https://localhost:14735/NorthwindCustomers.svc。
按 F5 运行该应用程序。
在文本框中,键入 London,然后单击相应的按钮。将仅显示来自 London 的客户。
请参见
任务
其他资源
ADO.NET Data Services Framework
修订记录
日期 |
修订历史记录 |
原因 |
---|---|---|
2008 年 7 月 |
新增主题。 |
SP1 功能更改。 |