当前位置:编程学习 > asp >>

wcf系列学习5天速成——第三天 事务的使用

 

今天是速成的第三天,再分享一下WCF中比较常用的一种技术,也就是”事务“。

 

在B2B的项目中,一般用户注册后,就有一个属于自己的店铺,此时,我们就要插入两张表, User和Shop表。

当然,要么插入成功,要么全失败。

 

第一步: 首先看一下项目的结构图:

\

 

第二步: 准备工作,我们新建Commerce数据库,用EF去映射,然后新建ServiceWCF类库,具体步骤就省略,

            这一块不懂可以留言。

\

 

第三步:新建一个Model类库。建立两个实体类Shop和User,当然自定义类型在WCF中传输,

           必须在类上加上【DataContract】,属性上加【DataMember】。

 

 

 

   Shop.cs

 

 1 namespace Model

 2 {

 3     [DataContract]

 4     public class Shop

 5     {

 6         [DataMember]

 7         public int ShopID { get; set; }

 8

 9         [DataMember]

10         public int UserID { get; set; }

11

12         [DataMember]

13         public string ShopName { get; set; }

14

15         [DataMember]

16         public string ShopUrl { get; set; }

17

18     }

19 }

  User.cs

 

 1 namespace Model

 2 {

 3     [DataContract]

 4     public class User

 5     {

 6         [DataMember]

 7         public int UserID { get; set; }

 8

 9         [DataMember]

10         public string UserName { get; set; }

11

12         [DataMember]

13         public string Password { get; set; }

14     }

15 }

 

 

第四步:然后在ServiceWCF类库中新建两个文件Seller.cs 和ISeller.cs.

 

        ISeller.cs:

 

 1 using System;

 2 using System.Collections.Generic;

 3 using System.Linq;

 4 using System.Runtime.Serialization;

 5 using System.ServiceModel;

 6 using System.Text;

 7

 8 namespace ServiceWCF

 9 {

10     [ServiceContract]

11     public interface ISeller

12     {

13         [OperationContract(Name = "AddUser")]

14         bool Add(Model.User user, out int userID);

15

16         [OperationContract(Name = "AddShop")]

17         bool Add(Model.Shop shop, out int shopID);

18

19         [OperationContract]

20         bool Add(Model.User user, Model.Shop shop);

21     }

22 }

     Seller.cs

 

 1 namespace ServiceWCF

 2 {

 3     public class Seller : ISeller

 4     {

 5         ///<summary>

 6 /// User的插入操作

 7 ///</summary>

 8 ///<param name="user"></param>

 9 ///<param name="userID"></param>

10 ///<returns></returns>

11         public bool Add(Model.User user, out int userID)

12         {

13             using (CommerceEntities db = new CommerceEntities())

14             {

15                 try

16                 {

17                     User userModel = new User()

18                     {

19                         UserName = user.UserName,

20                         Passwrod = user.Password

21                     };

22

23                     db.User.AddObject(userModel);

24

25                     db.SaveChanges();

26

27                     userID = userModel.UserID;

28

29                     return true;

30                 }

31                 catch (Exception)

32                 {

33                     userID = 0;

34                     throw;

35                 }

36             }

37         }

38

39         ///<summary>

40 /// Shop的插入操作

41 ///</summary>

42 ///<param name="shop"></param>

43 ///<param name="sho

补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,