mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-18 20:08:15 +08:00
## v0.3.27
- 增加 行级锁功能,适用修改实体; - 增加 FreeSql.Repository 默认依赖注入的方式,同时保留原有 Autofac; - 优化 FreeSql.Repository Insert 逻辑,参考了 FreeSql.DbContext; - 优化 FreeSql.IUpdate 参照 IInsert 对大批量更新,拆分执行; - 修复 FreeSql.IInsert ClearData 重复利用的 bug(使用 IgnoreColumns 进行大批量插入时会发生);
This commit is contained in:
@ -1,27 +0,0 @@
|
||||
{
|
||||
"iisSettings": {
|
||||
"windowsAuthentication": false,
|
||||
"anonymousAuthentication": true,
|
||||
"iisExpress": {
|
||||
"applicationUrl": "http://localhost:64150/",
|
||||
"sslPort": 0
|
||||
}
|
||||
},
|
||||
"profiles": {
|
||||
"IIS Express": {
|
||||
"commandName": "IISExpress",
|
||||
"launchBrowser": true,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
"repository_01": {
|
||||
"commandName": "Project",
|
||||
"launchBrowser": true,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
},
|
||||
"applicationUrl": "http://localhost:64154/"
|
||||
}
|
||||
}
|
||||
}
|
@ -53,7 +53,7 @@ namespace repository_01 {
|
||||
public IConfiguration Configuration { get; }
|
||||
public static IFreeSql Fsql { get; private set; }
|
||||
|
||||
public IServiceProvider ConfigureServices(IServiceCollection services) {
|
||||
public void ConfigureServices(IServiceCollection services) {
|
||||
|
||||
//services.AddTransient(s => s.)
|
||||
|
||||
@ -67,42 +67,28 @@ namespace repository_01 {
|
||||
});
|
||||
|
||||
services.AddSingleton<IFreeSql>(Fsql);
|
||||
//var baseType = typeof(IRepository);
|
||||
//var freeTypes = baseType.Assembly.GetTypes().Where(t => baseType.IsAssignableFrom(t));
|
||||
//foreach (var type in freeTypes) {
|
||||
// if ((type.IsInterface || type.IsAbstract) && type.IsGenericType) {
|
||||
// if (type.GenericTypeArguments.Length == 1)
|
||||
// services.AddScoped(type, sp => {
|
||||
// return Activator.CreateInstance(typeof(GuidRepository<>).MakeGenericType(type.GenericTypeArguments[0]), sp.GetService<IFreeSql>());
|
||||
// });
|
||||
// else
|
||||
// services.AddScoped(type, sp => {
|
||||
// return Activator.CreateInstance(typeof(DefaultRepository<,>).MakeGenericType(type.GenericTypeArguments[0], type.GenericTypeArguments[1]), sp.GetService<IFreeSql>());
|
||||
// });
|
||||
// continue;
|
||||
// }
|
||||
// services.AddScoped(type);
|
||||
//}
|
||||
|
||||
//var types = GetType().Assembly.GetTypes().Where(t => baseType.IsAssignableFrom(t) && !t.IsAbstract);
|
||||
//foreach (var type in types) {
|
||||
// services.AddScoped(type);
|
||||
//}
|
||||
|
||||
|
||||
var builder = new ContainerBuilder();
|
||||
|
||||
builder.RegisterFreeRepository(filter => filter
|
||||
.Apply<Song>("test", a => a.Title == DateTime.Now.ToString() + System.Threading.Thread.CurrentThread.ManagedThreadId)
|
||||
services.AddFreeRepository(filter => filter
|
||||
//.Apply<Song>("test", a => a.Title == DateTime.Now.ToString() + System.Threading.Thread.CurrentThread.ManagedThreadId)
|
||||
.Apply<ISoftDelete>("softdelete", a => a.IsDeleted == false)
|
||||
,
|
||||
this.GetType().Assembly
|
||||
);
|
||||
|
||||
builder.Populate(services);
|
||||
var container = builder.Build();
|
||||
|
||||
return new AutofacServiceProvider(container);
|
||||
//var builder = new ContainerBuilder();
|
||||
|
||||
//builder.RegisterFreeRepository(filter => filter
|
||||
// //.Apply<Song>("test", a => a.Title == DateTime.Now.ToString() + System.Threading.Thread.CurrentThread.ManagedThreadId)
|
||||
// .Apply<ISoftDelete>("softdelete", a => a.IsDeleted == false)
|
||||
// ,
|
||||
// this.GetType().Assembly
|
||||
//);
|
||||
|
||||
//builder.Populate(services);
|
||||
//var container = builder.Build();
|
||||
|
||||
//return new AutofacServiceProvider(container);
|
||||
}
|
||||
|
||||
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) {
|
||||
|
Reference in New Issue
Block a user