65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 ADO.NET 进行 WCF 数据绑定

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.71/5 (5投票s)

2009年12月2日

CPOL

2分钟阅读

viewsIcon

41612

downloadIcon

1567

这个基本示例演示了使用 WCF 服务调用数据库表。

引言

当我想要学习创建 WCF Web 服务时,我想到使用 ADO.NET 进行数据绑定,这可能不是一个坏主意。我浏览的许多文章都使用了 LINQ to SQL。虽然这很有帮助,但我决定创建一个使用纯 ADO.NET 从数据库检索数据的 WCF 应用程序。当我查找时,没有找到任何演示该功能的文章。这是一个非常基本的示例,就像从 SQL Server 数据库检索数据的“Hello World”程序。

背景

如我们所知,DataContract 属性类用于标记您编写的类型,使其参与通过 DataContractSerializer 进行 WCF 序列化。使用此属性标记您的类可确保它们能够以有效的方式发送到和从不同的客户端。当我们使用 LINQ 类(.dbml)并将类的属性标记为“单向序列化”时,此操作会自动完成。

我们将尝试从数据库中的表中检索所有记录。在这个例子中,我使用了我的公司数据库。但你可以通过更改查询将其更改为 Northwind 数据库。

该项目涉及创建一个“WCF 服务应用程序”和一个 Web 客户端来测试该服务。

使用代码

我们定义一个带有两个操作契约的接口,如下所示

//IMyService.cs
[OperationContract]
Shipper GetShipper(int shipperID);

[OperationContract]
Shipper saveShipper(Shipper shipper);

现在让我们定义带有两个需要序列化的数据成员的数据契约。

//Define the data contract IMyService.cs
[DataContract]

public class Shipper
{
    [DataMember]
    public int ShipperID
    {
        get; set;
    }
    [DataMember]
    public DataSet dsTable
    {
       get;set;
    }

Web 客户端

创建一个常规 ASP.NET 网站,并添加对刚刚创建的 Web 服务的 Web 引用,然后调用这些方法。

关注点

整个过程大约花了 30 分钟,主要是因为我不知道应该如何标记数据的序列化。我希望这对刚开始使用 WCF 服务和数据绑定的朋友们有所帮助。我很高兴我学会了数据绑定,这将是开发更大应用程序的一个很好的起点。我尝试了 LINQ,但没有成功异步调用该服务。我计划再次尝试。这是我在这里的第一篇文章,欢迎任何评论/建议。

© . All rights reserved.