mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
Update async public换成public async
This commit is contained in:
parent
4d91d87660
commit
96844fcee3
@ -1,14 +1,10 @@
|
|||||||
using FreeSql;
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using FreeSql;
|
||||||
using FreeSql.DataAnnotations;
|
using FreeSql.DataAnnotations;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using System;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace aspnetcore_transaction.Controllers
|
namespace aspnetcore_transaction.Controllers
|
||||||
{
|
{
|
||||||
@ -25,7 +21,7 @@ namespace aspnetcore_transaction.Controllers
|
|||||||
|
|
||||||
[HttpGet("1")]
|
[HttpGet("1")]
|
||||||
//[Transactional]
|
//[Transactional]
|
||||||
async public Task<object> Get([FromServices] BaseRepository<Song> repoSong, [FromServices] BaseRepository<Detail> repoDetail, [FromServices] SongRepository repoSong2,
|
public async Task<object> Get([FromServices] BaseRepository<Song> repoSong, [FromServices] BaseRepository<Detail> repoDetail, [FromServices] SongRepository repoSong2,
|
||||||
[FromServices] SongService serviceSong)
|
[FromServices] SongService serviceSong)
|
||||||
{
|
{
|
||||||
//repoSong.Insert(new Song());
|
//repoSong.Insert(new Song());
|
||||||
@ -39,7 +35,7 @@ namespace aspnetcore_transaction.Controllers
|
|||||||
|
|
||||||
[HttpGet("2")]
|
[HttpGet("2")]
|
||||||
//[Transactional]
|
//[Transactional]
|
||||||
async public Task<object> GetAsync([FromServices] BaseRepository<Song> repoSong, [FromServices] BaseRepository<Detail> repoDetail, [FromServices] SongRepository repoSong2,
|
public async Task<object> GetAsync([FromServices] BaseRepository<Song> repoSong, [FromServices] BaseRepository<Detail> repoDetail, [FromServices] SongRepository repoSong2,
|
||||||
[FromServices] SongService serviceSong)
|
[FromServices] SongService serviceSong)
|
||||||
{
|
{
|
||||||
await serviceSong.Test2();
|
await serviceSong.Test2();
|
||||||
@ -77,7 +73,7 @@ namespace aspnetcore_transaction.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Transactional(Propagation = Propagation.Nested)] //sqlite 不能嵌套事务,会锁库的
|
[Transactional(Propagation = Propagation.Nested)] //sqlite 不能嵌套事务,会锁库的
|
||||||
async public Task Test2()
|
public async Task Test2()
|
||||||
{
|
{
|
||||||
await _repoSong.InsertAsync(new Song());
|
await _repoSong.InsertAsync(new Song());
|
||||||
await _repoDetail.InsertAsync(new Detail());
|
await _repoDetail.InsertAsync(new Detail());
|
||||||
@ -85,7 +81,7 @@ namespace aspnetcore_transaction.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Transactional(Propagation = Propagation.Nested)] //sqlite 不能嵌套事务,会锁库的
|
[Transactional(Propagation = Propagation.Nested)] //sqlite 不能嵌套事务,会锁库的
|
||||||
async public Task<object> Test3()
|
public async Task<object> Test3()
|
||||||
{
|
{
|
||||||
await _repoSong.InsertAsync(new Song());
|
await _repoSong.InsertAsync(new Song());
|
||||||
await _repoDetail.InsertAsync(new Detail());
|
await _repoDetail.InsertAsync(new Detail());
|
||||||
|
@ -1,11 +1,5 @@
|
|||||||
using System;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.AspNetCore.Hosting;
|
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
|
|
||||||
namespace aspnetcore_transaction
|
namespace aspnetcore_transaction
|
||||||
{
|
{
|
||||||
|
@ -1,19 +1,12 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using aspnetcore_transaction.Controllers;
|
using aspnetcore_transaction.Controllers;
|
||||||
using FreeSql;
|
using FreeSql;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.HttpsPolicy;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
|
|
||||||
namespace aspnetcore_transaction
|
namespace aspnetcore_transaction
|
||||||
{
|
{
|
||||||
@ -22,7 +15,7 @@ namespace aspnetcore_transaction
|
|||||||
public Startup(IConfiguration configuration)
|
public Startup(IConfiguration configuration)
|
||||||
{
|
{
|
||||||
Configuration = configuration;
|
Configuration = configuration;
|
||||||
Fsql = new FreeSql.FreeSqlBuilder()
|
Fsql = new FreeSqlBuilder()
|
||||||
.UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|\test_trans.db")
|
.UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|\test_trans.db")
|
||||||
.UseAutoSyncStructure(true)
|
.UseAutoSyncStructure(true)
|
||||||
.UseMonitorCommand(cmd => Trace.WriteLine(cmd.CommandText))
|
.UseMonitorCommand(cmd => Trace.WriteLine(cmd.CommandText))
|
||||||
|
@ -1,13 +1,8 @@
|
|||||||
using FreeSql;
|
using System;
|
||||||
using Microsoft.AspNetCore.Mvc.Filters;
|
|
||||||
using Rougamo.Context;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Rougamo.Context;
|
||||||
|
|
||||||
namespace FreeSql
|
namespace FreeSql
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using FreeSql;
|
using FreeSql;
|
||||||
@ -12,9 +11,9 @@ namespace dbcontext_01.Controllers
|
|||||||
public class ValuesController : ControllerBase
|
public class ValuesController : ControllerBase
|
||||||
{
|
{
|
||||||
|
|
||||||
IFreeSql _orm;
|
private readonly IFreeSql _orm;
|
||||||
SongContext _songContext;
|
private readonly SongContext _songContext;
|
||||||
CurdAfterLog _curdLog;
|
private readonly CurdAfterLog _curdLog;
|
||||||
public ValuesController(SongContext songContext, IFreeSql orm1, CurdAfterLog curdLog)
|
public ValuesController(SongContext songContext, IFreeSql orm1, CurdAfterLog curdLog)
|
||||||
{
|
{
|
||||||
_songContext = songContext;
|
_songContext = songContext;
|
||||||
@ -25,10 +24,12 @@ namespace dbcontext_01.Controllers
|
|||||||
|
|
||||||
// GET api/values
|
// GET api/values
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
async public Task<string> Get()
|
public async Task<string> Get()
|
||||||
{
|
{
|
||||||
_orm.SetDbContextOptions(opt => {
|
_orm.SetDbContextOptions(opt =>
|
||||||
opt.OnEntityChange = changeReport => {
|
{
|
||||||
|
opt.OnEntityChange = changeReport =>
|
||||||
|
{
|
||||||
Console.WriteLine(changeReport);
|
Console.WriteLine(changeReport);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@ -136,7 +137,7 @@ namespace dbcontext_01.Controllers
|
|||||||
|
|
||||||
using (var uow = _orm.CreateUnitOfWork())
|
using (var uow = _orm.CreateUnitOfWork())
|
||||||
{
|
{
|
||||||
|
|
||||||
var reposSong = uow.GetRepository<Song, int>();
|
var reposSong = uow.GetRepository<Song, int>();
|
||||||
reposSong.Where(a => a.Id > 10).ToList();
|
reposSong.Where(a => a.Id > 10).ToList();
|
||||||
//查询结果,进入 states
|
//查询结果,进入 states
|
||||||
|
@ -13,14 +13,14 @@ namespace FreeSql
|
|||||||
{
|
{
|
||||||
partial class DbContext
|
partial class DbContext
|
||||||
{
|
{
|
||||||
async public virtual Task<int> SaveChangesAsync(CancellationToken cancellationToken = default)
|
public virtual async Task<int> SaveChangesAsync(CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
await FlushCommandAsync(cancellationToken);
|
await FlushCommandAsync(cancellationToken);
|
||||||
return SaveChangesSuccess();
|
return SaveChangesSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
static ConcurrentDictionary<Type, ConcurrentDictionary<string, Func<object, object[], CancellationToken, Task<int>>>> _dicFlushCommandDbSetBatchAsync = new ConcurrentDictionary<Type, ConcurrentDictionary<string, Func<object, object[], CancellationToken, Task<int>>>>();
|
static ConcurrentDictionary<Type, ConcurrentDictionary<string, Func<object, object[], CancellationToken, Task<int>>>> _dicFlushCommandDbSetBatchAsync = new ConcurrentDictionary<Type, ConcurrentDictionary<string, Func<object, object[], CancellationToken, Task<int>>>>();
|
||||||
async internal Task FlushCommandAsync(CancellationToken cancellationToken)
|
internal async Task FlushCommandAsync(CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
if (isFlushCommanding) return;
|
if (isFlushCommanding) return;
|
||||||
if (_prevCommands.Any() == false) return;
|
if (_prevCommands.Any() == false) return;
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
using System;
|
using FreeSql.DataAnnotations;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq.Expressions;
|
|
||||||
using FreeSql.DataAnnotations;
|
|
||||||
|
|
||||||
namespace FreeSql.Extensions.EfCoreFluentApi
|
namespace FreeSql.Extensions.EfCoreFluentApi
|
||||||
{
|
{
|
||||||
|
@ -82,7 +82,7 @@ namespace FreeSql
|
|||||||
}
|
}
|
||||||
#if net40
|
#if net40
|
||||||
#else
|
#else
|
||||||
async public override Task<int> SaveChangesAsync(CancellationToken cancellationToken = default)
|
public override async Task<int> SaveChangesAsync(CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
await FlushCommandAsync(cancellationToken);
|
await FlushCommandAsync(cancellationToken);
|
||||||
return SaveChangesSuccess();
|
return SaveChangesSuccess();
|
||||||
|
@ -103,7 +103,7 @@ namespace FreeSql
|
|||||||
_dbset.RemoveRange(entitys);
|
_dbset.RemoveRange(entitys);
|
||||||
return _db.SaveChanges();
|
return _db.SaveChanges();
|
||||||
}
|
}
|
||||||
public List<object> DeleteCascadeByDatabase(Expression<Func<TEntity, bool>> predicate)
|
public virtual List<object> DeleteCascadeByDatabase(Expression<Func<TEntity, bool>> predicate)
|
||||||
{
|
{
|
||||||
var list = _dbset.RemoveCascadeByDatabase(predicate);
|
var list = _dbset.RemoveCascadeByDatabase(predicate);
|
||||||
var affrows = _db.SaveChanges();
|
var affrows = _db.SaveChanges();
|
||||||
@ -151,14 +151,14 @@ namespace FreeSql
|
|||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SaveMany(TEntity entity, string propertyName)
|
public virtual void SaveMany(TEntity entity, string propertyName)
|
||||||
{
|
{
|
||||||
_dbset.SaveMany(entity, propertyName);
|
_dbset.SaveMany(entity, propertyName);
|
||||||
_db.SaveChanges();
|
_db.SaveChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BeginEdit(List<TEntity> data) => _dbset.BeginEdit(data);
|
public virtual void BeginEdit(List<TEntity> data) => _dbset.BeginEdit(data);
|
||||||
public int EndEdit(List<TEntity> data = null)
|
public virtual int EndEdit(List<TEntity> data = null)
|
||||||
{
|
{
|
||||||
_db.FlushCommand();
|
_db.FlushCommand();
|
||||||
if (UnitOfWork?.GetOrBeginTransaction(true) == null && _db.OrmOriginal.Ado.TransactionCurrentThread == null)
|
if (UnitOfWork?.GetOrBeginTransaction(true) == null && _db.OrmOriginal.Ado.TransactionCurrentThread == null)
|
||||||
@ -206,6 +206,6 @@ namespace FreeSql
|
|||||||
|
|
||||||
public virtual int Delete(TKey id) => Delete(CheckTKeyAndReturnIdEntity(id));
|
public virtual int Delete(TKey id) => Delete(CheckTKeyAndReturnIdEntity(id));
|
||||||
public virtual TEntity Find(TKey id) => _dbset.OrmSelectInternal(CheckTKeyAndReturnIdEntity(id)).ToOne();
|
public virtual TEntity Find(TKey id) => _dbset.OrmSelectInternal(CheckTKeyAndReturnIdEntity(id)).ToOne();
|
||||||
public TEntity Get(TKey id) => _dbset.OrmSelectInternal(CheckTKeyAndReturnIdEntity(id)).ToOne();
|
public virtual TEntity Get(TKey id) => _dbset.OrmSelectInternal(CheckTKeyAndReturnIdEntity(id)).ToOne();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using FreeSql.Extensions.EntityUtil;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
@ -14,7 +13,7 @@ namespace FreeSql
|
|||||||
where TEntity : class
|
where TEntity : class
|
||||||
{
|
{
|
||||||
|
|
||||||
async virtual public Task<int> DeleteAsync(Expression<Func<TEntity, bool>> predicate, CancellationToken cancellationToken = default)
|
public virtual async Task<int> DeleteAsync(Expression<Func<TEntity, bool>> predicate, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
var delete = _dbset.OrmDeleteInternal(null).Where(predicate);
|
var delete = _dbset.OrmDeleteInternal(null).Where(predicate);
|
||||||
var sql = delete.ToSql();
|
var sql = delete.ToSql();
|
||||||
@ -32,20 +31,20 @@ namespace FreeSql
|
|||||||
_dbset.RemoveRange(entitys);
|
_dbset.RemoveRange(entitys);
|
||||||
return _db.SaveChangesAsync(cancellationToken);
|
return _db.SaveChangesAsync(cancellationToken);
|
||||||
}
|
}
|
||||||
async public virtual Task<List<object>> DeleteCascadeByDatabaseAsync(Expression<Func<TEntity, bool>> predicate, CancellationToken cancellationToken = default)
|
public virtual async Task<List<object>> DeleteCascadeByDatabaseAsync(Expression<Func<TEntity, bool>> predicate, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
var list = await _dbset.RemoveCascadeByDatabaseAsync(predicate, cancellationToken);
|
var list = await _dbset.RemoveCascadeByDatabaseAsync(predicate, cancellationToken);
|
||||||
var affrows = await _db.SaveChangesAsync(cancellationToken);
|
var affrows = await _db.SaveChangesAsync(cancellationToken);
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
async public virtual Task<TEntity> InsertAsync(TEntity entity, CancellationToken cancellationToken = default)
|
public virtual async Task<TEntity> InsertAsync(TEntity entity, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
await _dbset.AddAsync(entity, cancellationToken);
|
await _dbset.AddAsync(entity, cancellationToken);
|
||||||
await _db.SaveChangesAsync(cancellationToken);
|
await _db.SaveChangesAsync(cancellationToken);
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
async public virtual Task<List<TEntity>> InsertAsync(IEnumerable<TEntity> entitys, CancellationToken cancellationToken = default)
|
public virtual async Task<List<TEntity>> InsertAsync(IEnumerable<TEntity> entitys, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
await _dbset.AddRangeAsync(entitys, cancellationToken);
|
await _dbset.AddRangeAsync(entitys, cancellationToken);
|
||||||
await _db.SaveChangesAsync(cancellationToken);
|
await _db.SaveChangesAsync(cancellationToken);
|
||||||
@ -63,14 +62,14 @@ namespace FreeSql
|
|||||||
return _db.SaveChangesAsync(cancellationToken);
|
return _db.SaveChangesAsync(cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
async public virtual Task<TEntity> InsertOrUpdateAsync(TEntity entity, CancellationToken cancellationToken = default)
|
public virtual async Task<TEntity> InsertOrUpdateAsync(TEntity entity, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
await _dbset.AddOrUpdateAsync(entity, cancellationToken);
|
await _dbset.AddOrUpdateAsync(entity, cancellationToken);
|
||||||
await _db.SaveChangesAsync(cancellationToken);
|
await _db.SaveChangesAsync(cancellationToken);
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
async public Task SaveManyAsync(TEntity entity, string propertyName, CancellationToken cancellationToken = default)
|
public virtual async Task SaveManyAsync(TEntity entity, string propertyName, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
await _dbset.SaveManyAsync(entity, propertyName, cancellationToken);
|
await _dbset.SaveManyAsync(entity, propertyName, cancellationToken);
|
||||||
await _db.SaveChangesAsync(cancellationToken);
|
await _db.SaveChangesAsync(cancellationToken);
|
||||||
@ -81,7 +80,7 @@ namespace FreeSql
|
|||||||
{
|
{
|
||||||
public virtual Task<int> DeleteAsync(TKey id, CancellationToken cancellationToken = default) => DeleteAsync(CheckTKeyAndReturnIdEntity(id), cancellationToken);
|
public virtual Task<int> DeleteAsync(TKey id, CancellationToken cancellationToken = default) => DeleteAsync(CheckTKeyAndReturnIdEntity(id), cancellationToken);
|
||||||
public virtual Task<TEntity> FindAsync(TKey id, CancellationToken cancellationToken = default) => _dbset.OrmSelectInternal(CheckTKeyAndReturnIdEntity(id)).ToOneAsync(cancellationToken);
|
public virtual Task<TEntity> FindAsync(TKey id, CancellationToken cancellationToken = default) => _dbset.OrmSelectInternal(CheckTKeyAndReturnIdEntity(id)).ToOneAsync(cancellationToken);
|
||||||
public Task<TEntity> GetAsync(TKey id, CancellationToken cancellationToken = default) => _dbset.OrmSelectInternal(CheckTKeyAndReturnIdEntity(id)).ToOneAsync(cancellationToken);
|
public virtual Task<TEntity> GetAsync(TKey id, CancellationToken cancellationToken = default) => _dbset.OrmSelectInternal(CheckTKeyAndReturnIdEntity(id)).ToOneAsync(cancellationToken);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
Loading…
x
Reference in New Issue
Block a user