#region 插入操作
2 /// <summary>
3 /// 插入操作
4 /// </summary>
5 /// <param name="person"></param>
6 /// <returns></returns>
7 public void Insert(T t)
8 {
9 using (Mongo mongo = new Mongo(configuration))
10 {
11 try
12 {
13 mongo.Connect();
14
15 var db = mongo.GetDatabase(databaseName);
16
17 var collection = db.GetCollection<T>(collectionName);
18
19 collection.Insert(t, true);
20
21 mongo.Disconnect();
22
23 }
24 catch (Exception)
25 {
26 mongo.Disconnect();
27 throw;
28 }
29 }
30 }
31 #endregion
32
33 #region 更新操作
34 /// <summary>
35 /// 更新操作
36 /// </summary>
37 /// <param name="person"></param>
38 /// <returns></returns>
39 public void Update(T t, Expression<Func<T, bool>> func)
40 {
41 using (Mongo mongo = new Mongo(configuration))
42 {
43 try
44 {
45 mongo.Connect();
46
47 var db = mongo.GetDatabase(databaseName);
48
49 var collection = db.GetCollection<T>(collectionName);
50
51 collection.Update<T>(t, func, true);
52
53 mongo.Disconnect();
54
55 }
56 catch (Exception)
57 {
58 mongo.Disconnect();
59 throw;
60 }
61 }
62 }
63 #endregion
64
65 #region 获取集合
66 /// <summary>
67 ///获取集合
68 /// </summary>
69 /// <param name="person"></param>
70 /// <returns></returns>
71 public List<T> List(int pageIndex, int pageSize, Expression<Func<T, bool>> func, out int pageCount)
72 {
73 pageCount = 0;
74
75 using (Mongo mongo = new Mongo(configuration))
76 {
77 try
78 {
79 mongo.Connect();
80
81 var db = mongo.GetDatabase(databaseName);
82
83 var collection = db.GetCollection<T>(collectionName);
84
85 pageCount = Convert.ToInt32(collection.Count());
86
87 var personList = collection.Linq().Where(func).Skip(pageSize * (pageIndex - 1))
88 .Take(pageSize).Select(i => i).ToList();
89
90 mongo.Disconnect();
91
92 return personList;
93
94 }
95 catch (Exception)
96 {
97 mongo.Disconnect();
98 throw;
99 }
100 }
101 }
102 #endregion
103
104 #region 读取单条记录
105 /// <summary>
106 ///读取单条记录
107 /// </summary>
108 /// <param name="person"></param>
109 /// <returns></returns>
110 public T Single(Expression<Func<T, bool>> func)
111 {
112 using (Mongo mongo = new Mongo(configuration))
113 {
114 try
115 {
116 mongo.Connect();
117
118 var db = mongo.GetDatabase(databaseName);
119
120 var collection = db.GetCollection<T>(collectionName);
121
122 var single = collection.Linq().FirstOrDefault(func);
123
124 mongo.Disconnect();
125
126 return single;
127
128 }
129 catch (Exception)
130 {
131 mongo.Disconnect();
132 throw;
133 }
134 }
135 }
136 #endregion
137
138 #region 删除操作
139 /// <summary>
140 /// 删除操作
141 /// </summary>
142 /// <param name="person"></param>
143 /// <returns></returns>
144 public void Delete(Expression<Func<T, bool>> func)
145 {
146 using (Mongo mongo = new Mongo(configuration))
147 {
148 try
149 {
150 mongo.Connect();
151
152 var db = mongo.GetDatabase(databaseName);
153
154 var collection = db.GetCollection<T>(collectionName);
155
156 //这个地方要注意,一定要加上T参数,否则会当作object类型处理
157 //导致删除失败
158 collection.Remove<T>(func);
159
160 mongo.Disconnect();
161
162 }
163 catch (Exception)
164 {
165 mongo.Disconnect();
166 throw;
167 }
168 }
169 }
170 #endregion
泛型增删改
最新推荐文章于 2019-07-19 15:53:20 发布