Skip to content

Commit c5c98b6

Browse files
committed
[修改]1. 修改数据库类型的构造函数约束
1 parent 78294ed commit c5c98b6

File tree

6 files changed

+46
-45
lines changed

6 files changed

+46
-45
lines changed

GameFrameX.DataBase/Abstractions/IDatabaseService.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@ public interface IDatabaseService
3434
/// <param name="filter">查询条件</param>
3535
/// <typeparam name="TState">实现ICacheState接口的类型。</typeparam>
3636
/// <returns>返回符合条件的数据对象</returns>
37-
Task<TState> FindAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState;
37+
Task<TState> FindAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState, new();
3838

3939
/// <summary>
4040
/// 查询数据
4141
/// </summary>
4242
/// <param name="filter">查询条件</param>
4343
/// <typeparam name="TState">实现ICacheState接口的类型。</typeparam>1
4444
/// <returns>返回符合条件的数据列表</returns>
45-
Task<List<TState>> FindListAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState;
45+
Task<List<TState>> FindListAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState, new();
4646

4747
/// <summary>
4848
/// 以升序方式查找符合条件的第一个元素。
@@ -51,7 +51,7 @@ public interface IDatabaseService
5151
/// <param name="filter">过滤表达式。</param>
5252
/// <param name="sortExpression">排序字段表达式。</param>
5353
/// <returns>符合条件的第一个元素。</returns>
54-
Task<TState> FindSortAscendingFirstOneAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression) where TState : BaseCacheState;
54+
Task<TState> FindSortAscendingFirstOneAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression) where TState : BaseCacheState, new();
5555

5656
/// <summary>
5757
/// 以降序方式查找符合条件的第一个元素。
@@ -60,7 +60,7 @@ public interface IDatabaseService
6060
/// <param name="filter">过滤表达式。</param>
6161
/// <param name="sortExpression">排序字段表达式。</param>
6262
/// <returns>符合条件的第一个元素。</returns>
63-
Task<TState> FindSortDescendingFirstOneAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression) where TState : BaseCacheState;
63+
Task<TState> FindSortDescendingFirstOneAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression) where TState : BaseCacheState, new();
6464

6565
/// <summary>
6666
/// 以降序方式查找符合条件的元素并进行分页。
@@ -71,7 +71,7 @@ public interface IDatabaseService
7171
/// <param name="pageIndex">页码,从0开始。</param>
7272
/// <param name="pageSize">每页数量,默认为10。</param>
7373
/// <returns>符合条件的元素列表。</returns>
74-
Task<List<TState>> FindSortDescendingAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression, int pageIndex = 0, int pageSize = 10) where TState : BaseCacheState;
74+
Task<List<TState>> FindSortDescendingAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression, int pageIndex = 0, int pageSize = 10) where TState : BaseCacheState, new();
7575

7676
/// <summary>
7777
/// 以升序方式查找符合条件的元素并进行分页。
@@ -82,55 +82,55 @@ public interface IDatabaseService
8282
/// <param name="pageIndex">页码,从0开始。</param>
8383
/// <param name="pageSize">每页数量,默认为10。</param>
8484
/// <returns>符合条件的元素列表。</returns>
85-
Task<List<TState>> FindSortAscendingAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression, int pageIndex = 0, int pageSize = 10) where TState : BaseCacheState;
85+
Task<List<TState>> FindSortAscendingAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression, int pageIndex = 0, int pageSize = 10) where TState : BaseCacheState, new();
8686

8787
/// <summary>
8888
/// 查询数据长度
8989
/// </summary>
9090
/// <param name="filter">查询条件</param>
9191
/// <typeparam name="TState">实现ICacheState接口的类型。</typeparam>
9292
/// <returns>返回数据的长度</returns>
93-
Task<long> CountAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState;
93+
Task<long> CountAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState, new();
9494

9595
/// <summary>
9696
/// 删除数据
9797
/// </summary>
9898
/// <param name="filter">查询条件</param>
9999
/// <typeparam name="TState">实现ICacheState接口的类型。</typeparam>
100100
/// <returns>返回删除的条数</returns>
101-
Task<long> DeleteAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState;
101+
Task<long> DeleteAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState, new();
102102

103103
/// <summary>
104104
/// 删除数据
105105
/// </summary>
106106
/// <param name="state">数据对象</param>
107107
/// <typeparam name="TState">实现ICacheState接口的类型。</typeparam>
108108
/// <returns>返回删除的条数</returns>
109-
Task<long> DeleteAsync<TState>(TState state) where TState : BaseCacheState;
109+
Task<long> DeleteAsync<TState>(TState state) where TState : BaseCacheState, new();
110110

111111
/// <summary>
112112
/// 根据条件批量删除数据(软删除)
113113
/// </summary>
114114
/// <param name="filter">查询条件表达式</param>
115115
/// <typeparam name="TState">数据类型,必须继承自BaseCacheState</typeparam>
116116
/// <returns>返回修改的记录数</returns>
117-
Task<long> DeleteListAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState;
117+
Task<long> DeleteListAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState, new();
118118

119119
/// <summary>
120120
/// 根据ID列表批量删除数据(软删除)
121121
/// </summary>
122122
/// <param name="ids">要删除的ID列表</param>
123123
/// <typeparam name="TState">数据类型,必须继承自BaseCacheState</typeparam>
124124
/// <returns>返回修改的记录数</returns>
125-
Task<long> DeleteListIdAsync<TState>(IEnumerable<long> ids) where TState : BaseCacheState;
125+
Task<long> DeleteListIdAsync<TState>(IEnumerable<long> ids) where TState : BaseCacheState, new();
126126

127127
/// <summary>
128128
/// 保存数据
129129
/// </summary>
130130
/// <param name="state">数据对象</param>
131131
/// <typeparam name="TState">实现ICacheState接口的类型。</typeparam>
132132
/// <returns>返回增加成功的条数</returns>
133-
Task AddAsync<TState>(TState state) where TState : BaseCacheState;
133+
Task AddAsync<TState>(TState state) where TState : BaseCacheState, new();
134134

135135
/// <summary>
136136
/// 增加或更新数据
@@ -146,28 +146,28 @@ public interface IDatabaseService
146146
/// <param name="states">数据对象</param>
147147
/// <typeparam name="TState">实现ICacheState接口的类型。</typeparam>
148148
/// <returns></returns>
149-
Task AddListAsync<TState>(IEnumerable<TState> states) where TState : BaseCacheState;
149+
Task AddListAsync<TState>(IEnumerable<TState> states) where TState : BaseCacheState, new();
150150

151151
/// <summary>
152152
/// 保存数据,如果数据已经存在则更新,如果不存在则插入
153153
/// </summary>
154154
/// <param name="state">数据对象</param>
155155
/// <typeparam name="TState">实现ICacheState接口的类型。</typeparam>
156156
/// <returns>返回更新后的数据对象</returns>
157-
Task<TState> UpdateAsync<TState>(TState state) where TState : BaseCacheState;
157+
Task<TState> UpdateAsync<TState>(TState state) where TState : BaseCacheState, new();
158158

159159
/// <summary>
160160
/// 保存多条数据
161161
/// </summary>
162162
/// <param name="stateList">数据列表对象</param>
163163
/// <returns>返回更新成功的数量</returns>
164-
Task<long> UpdateAsync<TState>(IEnumerable<TState> stateList) where TState : BaseCacheState;
164+
Task<long> UpdateAsync<TState>(IEnumerable<TState> stateList) where TState : BaseCacheState, new();
165165

166166
/// <summary>
167167
/// 查询符合条件的数据是否存在
168168
/// </summary>
169169
/// <param name="filter">查询条件</param>
170170
/// <typeparam name="TState">实现ICacheState接口的类型。</typeparam>
171171
/// <returns>返回是否存在值,true表示存在,false表示不存在</returns>
172-
Task<bool> AnyAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState;
172+
Task<bool> AnyAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState, new();
173173
}

GameFrameX.DataBase/GameDB.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public static void Close()
5555
/// <typeparam name="TState">文档的类型,必须继承自BaseCacheState</typeparam>
5656
/// <param name="filter">用于筛选文档的Lambda表达式</param>
5757
/// <returns>匹配的文档列表</returns>
58-
public static Task<List<TState>> FindListAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState
58+
public static Task<List<TState>> FindListAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState, new()
5959
{
6060
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
6161
return _dbServiceImplementation.FindListAsync(filter);
@@ -67,7 +67,7 @@ public static Task<List<TState>> FindListAsync<TState>(Expression<Func<TState, b
6767
/// <typeparam name="TState">文档的类型,必须继承自BaseCacheState</typeparam>
6868
/// <param name="filter">用于筛选文档的Lambda表达式</param>
6969
/// <returns>匹配的文档数量</returns>
70-
public static Task<long> CountAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState
70+
public static Task<long> CountAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState, new()
7171
{
7272
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
7373
return _dbServiceImplementation.CountAsync(filter);
@@ -80,7 +80,7 @@ public static Task<long> CountAsync<TState>(Expression<Func<TState, bool>> filte
8080
/// <param name="filter">用于筛选文档的Lambda表达式</param>
8181
/// <param name="sortExpression">用于指定排序字段的Lambda表达式</param>
8282
/// <returns>符合条件的第一个元素,如果没有匹配项则返回null</returns>
83-
public static Task<TState> FindSortAscendingFirstOneAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression) where TState : BaseCacheState
83+
public static Task<TState> FindSortAscendingFirstOneAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression) where TState : BaseCacheState, new()
8484
{
8585
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
8686
return _dbServiceImplementation.FindSortAscendingFirstOneAsync(filter, sortExpression);
@@ -93,7 +93,7 @@ public static Task<TState> FindSortAscendingFirstOneAsync<TState>(Expression<Fun
9393
/// <param name="filter">用于筛选文档的Lambda表达式</param>
9494
/// <param name="sortExpression">用于指定排序字段的Lambda表达式</param>
9595
/// <returns>符合条件的第一个元素,如果没有匹配项则返回null</returns>
96-
public static Task<TState> FindSortDescendingFirstOneAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression) where TState : BaseCacheState
96+
public static Task<TState> FindSortDescendingFirstOneAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression) where TState : BaseCacheState, new()
9797
{
9898
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
9999
return _dbServiceImplementation.FindSortDescendingFirstOneAsync(filter, sortExpression);
@@ -108,7 +108,7 @@ public static Task<TState> FindSortDescendingFirstOneAsync<TState>(Expression<Fu
108108
/// <param name="pageIndex">页码,从0开始</param>
109109
/// <param name="pageSize">每页数量,默认为10</param>
110110
/// <returns>分页后的文档列表</returns>
111-
public static Task<List<TState>> FindSortDescendingAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression, int pageIndex = 0, int pageSize = 10) where TState : BaseCacheState
111+
public static Task<List<TState>> FindSortDescendingAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression, int pageIndex = 0, int pageSize = 10) where TState : BaseCacheState, new()
112112
{
113113
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
114114
return _dbServiceImplementation.FindSortDescendingAsync(filter, sortExpression, pageIndex, pageSize);
@@ -123,7 +123,7 @@ public static Task<List<TState>> FindSortDescendingAsync<TState>(Expression<Func
123123
/// <param name="pageIndex">页码,从0开始</param>
124124
/// <param name="pageSize">每页数量,默认为10</param>
125125
/// <returns>分页后的文档列表</returns>
126-
public static Task<List<TState>> FindSortAscendingAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression, int pageIndex = 0, int pageSize = 10) where TState : BaseCacheState
126+
public static Task<List<TState>> FindSortAscendingAsync<TState>(Expression<Func<TState, bool>> filter, Expression<Func<TState, object>> sortExpression, int pageIndex = 0, int pageSize = 10) where TState : BaseCacheState, new()
127127
{
128128
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
129129
return _dbServiceImplementation.FindSortAscendingAsync(filter, sortExpression, pageIndex, pageSize);
@@ -162,7 +162,7 @@ public static Task<List<TState>> FindSortAscendingAsync<TState>(Expression<Func<
162162
/// <typeparam name="TState">文档的类型,必须继承自BaseCacheState</typeparam>
163163
/// <param name="state">要更新的文档实例</param>
164164
/// <returns>更新后的文档</returns>
165-
public static Task<TState> UpdateAsync<TState>(TState state) where TState : BaseCacheState
165+
public static Task<TState> UpdateAsync<TState>(TState state) where TState : BaseCacheState, new()
166166
{
167167
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
168168
return _dbServiceImplementation.UpdateAsync(state);
@@ -174,7 +174,7 @@ public static Task<TState> UpdateAsync<TState>(TState state) where TState : Base
174174
/// <typeparam name="TState">文档的类型,必须继承自BaseCacheState</typeparam>
175175
/// <param name="state">要保存的文档实例</param>
176176
/// <returns>保存操作的结果</returns>
177-
public static Task SaveOneAsync<TState>(TState state) where TState : BaseCacheState
177+
public static Task SaveOneAsync<TState>(TState state) where TState : BaseCacheState, new()
178178
{
179179
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
180180
return _dbServiceImplementation.AddAsync(state);
@@ -198,7 +198,7 @@ public static Task SaveOneAsync<TState>(TState state) where TState : BaseCacheSt
198198
/// <typeparam name="TState">文档的类型,必须继承自BaseCacheState</typeparam>
199199
/// <param name="states">要保存的文档集合</param>
200200
/// <returns>保存操作的任务</returns>
201-
public static Task AddListAsync<TState>(IEnumerable<TState> states) where TState : BaseCacheState
201+
public static Task AddListAsync<TState>(IEnumerable<TState> states) where TState : BaseCacheState, new()
202202
{
203203
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
204204
return _dbServiceImplementation.AddListAsync(states);
@@ -210,7 +210,7 @@ public static Task AddListAsync<TState>(IEnumerable<TState> states) where TState
210210
/// <typeparam name="TState">文档的类型,必须继承自BaseCacheState</typeparam>
211211
/// <param name="stateList">要更新的文档集合</param>
212212
/// <returns>成功更新的文档数量</returns>
213-
public static Task<long> UpdateAsync<TState>(IEnumerable<TState> stateList) where TState : BaseCacheState
213+
public static Task<long> UpdateAsync<TState>(IEnumerable<TState> stateList) where TState : BaseCacheState, new()
214214
{
215215
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
216216
return _dbServiceImplementation.UpdateAsync(stateList);
@@ -222,7 +222,7 @@ public static Task<long> UpdateAsync<TState>(IEnumerable<TState> stateList) wher
222222
/// <typeparam name="TState">文档的类型,必须继承自BaseCacheState</typeparam>
223223
/// <param name="filter">用于筛选文档的Lambda表达式</param>
224224
/// <returns>如果存在匹配的文档则返回true,否则返回false</returns>
225-
public static Task<bool> AnyAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState
225+
public static Task<bool> AnyAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState, new()
226226
{
227227
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
228228
return _dbServiceImplementation.AnyAsync(filter);
@@ -234,7 +234,7 @@ public static Task<bool> AnyAsync<TState>(Expression<Func<TState, bool>> filter)
234234
/// <typeparam name="TState">文档的类型,必须继承自BaseCacheState</typeparam>
235235
/// <param name="filter">用于筛选要删除文档的Lambda表达式</param>
236236
/// <returns>成功删除的文档数量</returns>
237-
public static Task<long> DeleteAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState
237+
public static Task<long> DeleteAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState, new()
238238
{
239239
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
240240
return _dbServiceImplementation.DeleteAsync(filter);
@@ -246,7 +246,7 @@ public static Task<long> DeleteAsync<TState>(Expression<Func<TState, bool>> filt
246246
/// <typeparam name="TState">文档的类型,必须继承自BaseCacheState</typeparam>
247247
/// <param name="state">要删除的文档实例</param>
248248
/// <returns>成功删除的文档数量</returns>
249-
public static Task<long> DeleteAsync<TState>(TState state) where TState : BaseCacheState
249+
public static Task<long> DeleteAsync<TState>(TState state) where TState : BaseCacheState, new()
250250
{
251251
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
252252
return _dbServiceImplementation.DeleteAsync(state);
@@ -258,7 +258,7 @@ public static Task<long> DeleteAsync<TState>(TState state) where TState : BaseCa
258258
/// <param name="filter">查询条件表达式</param>
259259
/// <typeparam name="TState">数据类型,必须继承自BaseCacheState</typeparam>
260260
/// <returns>返回修改的记录数</returns>
261-
public static async Task<long> DeleteListAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState
261+
public static async Task<long> DeleteListAsync<TState>(Expression<Func<TState, bool>> filter) where TState : BaseCacheState, new()
262262
{
263263
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
264264
return await _dbServiceImplementation.DeleteListAsync<TState>(filter);
@@ -270,7 +270,7 @@ public static async Task<long> DeleteListAsync<TState>(Expression<Func<TState, b
270270
/// <param name="ids">要删除的ID列表</param>
271271
/// <typeparam name="TState">数据类型,必须继承自BaseCacheState</typeparam>
272272
/// <returns>返回修改的记录数</returns>
273-
public static async Task<long> DeleteListIdAsync<TState>(IEnumerable<long> ids) where TState : BaseCacheState
273+
public static async Task<long> DeleteListIdAsync<TState>(IEnumerable<long> ids) where TState : BaseCacheState, new()
274274
{
275275
ArgumentNullException.ThrowIfNull(_dbServiceImplementation, nameof(_dbServiceImplementation));
276276
return await _dbServiceImplementation.DeleteListIdAsync<TState>(ids);

0 commit comments

Comments
 (0)