## v0.3.25

- 修复 全局过滤器一个赋值低级错误;
- 增加 IFreeSql<TMark> 空接口,现实多个 IFreeSql 注入使用,使用泛型标识区分;
This commit is contained in:
2881099
2019-03-23 02:11:18 +08:00
parent 07d0de8093
commit bf72bf423c
17 changed files with 71 additions and 38 deletions

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using FreeSql;
using Microsoft.AspNetCore.Mvc;
namespace dbcontext_01.Controllers
@@ -12,9 +13,12 @@ namespace dbcontext_01.Controllers
{
IFreeSql _orm;
public ValuesController(SongContext songContext, IFreeSql orm) {
public ValuesController(SongContext songContext,
IFreeSql orm1, IFreeSql orm2,
IFreeSql<long> orm3
) {
_orm = orm;
_orm = orm1;
}

View File

@@ -20,8 +20,8 @@ namespace dbcontext_01
Configuration = configuration;
Fsql = new FreeSql.FreeSqlBuilder()
//.UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|\document.db;Pooling=true;Max Pool Size=10")
.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=10")
.UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|\document.db;Pooling=true;Max Pool Size=10")
//.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=10")
.UseLogger(loggerFactory.CreateLogger<IFreeSql>())
.UseAutoSyncStructure(true)
.UseLazyLoading(true)
@@ -30,11 +30,27 @@ namespace dbcontext_01
(cmd, log) => Trace.WriteLine(log)
)
.Build();
Fsql2 = new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|\document222.db;Pooling=true;Max Pool Size=10")
//.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=10")
.UseLogger(loggerFactory.CreateLogger<IFreeSql>())
.UseAutoSyncStructure(true)
.UseLazyLoading(true)
.UseMonitorCommand(cmd => Trace.WriteLine(cmd.CommandText),
(cmd, log) => Trace.WriteLine(log)
)
.Build<long>();
}
public IConfiguration Configuration { get; }
enum MySql { }
enum PgSql { }
public IConfiguration Configuration { get; }
public static IFreeSql Fsql { get; private set; }
public static IFreeSql<long> Fsql2 { get; private set; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
@@ -46,7 +62,10 @@ namespace dbcontext_01
//options.IncludeXmlComments(xmlPath);
});
services.AddSingleton<IFreeSql>(Fsql);
services.AddSingleton<IFreeSql<long>>(Fsql2);
services.AddFreeDbContext<SongContext>(options => options.UseFreeSql(Fsql));
}

View File

@@ -2,12 +2,12 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.3" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.2.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.3" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.1.0" />
<PackageReference Include="sqlSugarCore" Version="4.9.9.3" />
</ItemGroup>

View File

@@ -20,6 +20,8 @@ namespace restful.Controllers {
public class xxxx {
public int Id { get; set; }
public bool IsDeleted { get; set; }
}

View File

@@ -1,4 +1,5 @@
using FreeSql.DataAnnotations;
using repository_01;
namespace restful.Entitys {
public class Song {

View File

@@ -19,15 +19,15 @@ namespace repository_01 {
/// <summary>
/// 用户密码信息
/// </summary>
public class SysUserLogOn {
public class Sys1UserLogOn {
[Column(IsPrimary = true, Name = "Id")]
public Guid UserLogOnId { get; set; }
public virtual SysUser User { get; set; }
public virtual Sys1User User { get; set; }
}
public class SysUser {
public class Sys1User {
[Column(IsPrimary = true, Name = "Id")]
public Guid UserId { get; set; }
public virtual SysUserLogOn UserLogOn { get; set; }
public virtual Sys1UserLogOn UserLogOn { get; set; }
}
public class Startup {
@@ -43,11 +43,11 @@ namespace repository_01 {
.UseMonitorCommand(cmd => Trace.WriteLine(cmd.CommandText))
.Build();
var sysu = new SysUser { };
Fsql.Insert<SysUser>().AppendData(sysu).ExecuteAffrows();
Fsql.Insert<SysUserLogOn>().AppendData(new SysUserLogOn { UserLogOnId = sysu.UserId }).ExecuteAffrows();
var a = Fsql.Select<SysUserLogOn>().ToList();
var b = Fsql.Select<SysUserLogOn>().Any();
var sysu = new Sys1User { };
Fsql.Insert<Sys1User>().AppendData(sysu).ExecuteAffrows();
Fsql.Insert<Sys1UserLogOn>().AppendData(new Sys1UserLogOn { UserLogOnId = sysu.UserId }).ExecuteAffrows();
var a = Fsql.Select<Sys1UserLogOn>().ToList();
var b = Fsql.Select<Sys1UserLogOn>().Any();
}
public IConfiguration Configuration { get; }
@@ -92,8 +92,10 @@ namespace repository_01 {
var builder = new ContainerBuilder();
builder.RegisterFreeRepository(
filter => filter.Apply<Song>("test", a => a.Title == DateTime.Now.ToString() + System.Threading.Thread.CurrentThread.ManagedThreadId),
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
);
@@ -121,4 +123,8 @@ namespace repository_01 {
});
}
}
public interface ISoftDelete {
bool IsDeleted { get; set; }
}
}