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 inte易做图ce 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 ,