mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 18:52:50 +08:00
- 优化 ISelect<T1, T2> 对象 .LeftJoin<T2> 表别名;#1348
This commit is contained in:
parent
77d2a436d6
commit
cc89a6c685
@ -487,10 +487,38 @@ namespace base_entity
|
||||
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
||||
#endregion
|
||||
|
||||
var dkdksql = fsql.Select<User1>().WithLock().From<UserGroup>()
|
||||
.InnerJoin<UserGroup>((user, usergroup) => user.GroupId == usergroup.Id && usergroup.GroupName == "xxx")
|
||||
.ToSql();
|
||||
|
||||
//Func<string> getName1 = () => "xxx";
|
||||
//fsql.GlobalFilter.Apply<User1>("fil1", a => a.Nickname == getName1());
|
||||
//var gnsql2 = fsql.Select<User1>().ToSql();
|
||||
|
||||
using (var ctx9 = fsql.CreateDbContext())
|
||||
{
|
||||
//var uset = ctx9.Set<UserGroup>();
|
||||
//var item = new UserGroup
|
||||
//{
|
||||
// GroupName = "group1"
|
||||
//};
|
||||
//uset.Add(item);
|
||||
//item.GroupName = "group1_2";
|
||||
//uset.Update(item);
|
||||
var uset = ctx9.Set<User1>();
|
||||
var item = new User1
|
||||
{
|
||||
Nickname = "nick1",
|
||||
Username = "user1"
|
||||
};
|
||||
uset.Add(item);
|
||||
item.Nickname = "nick1_2";
|
||||
item.Username = "user1_2";
|
||||
uset.Update(item);
|
||||
|
||||
ctx9.SaveChanges();
|
||||
}
|
||||
|
||||
var strs = new string[] { "a", "b", "c" };
|
||||
var strssql1 = fsql.Select<User1>().Where(a => strs.Any(b => b == a.Nickname)).ToSql();
|
||||
var strssql2 = fsql.Select<User1>().Where(a => strs.Any(b => a.Nickname.Contains(b))).ToSql();
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFrameworks>netcoreapp3.1;net60</TargetFrameworks>
|
||||
<TargetFrameworks>net60</TargetFrameworks>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<IsPackable>true</IsPackable>
|
||||
<PackAsTool>true</PackAsTool>
|
||||
|
@ -800,5 +800,14 @@
|
||||
<param name="that"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
|
||||
<summary>
|
||||
批量注入 Repository,可以参考代码自行调整
|
||||
</summary>
|
||||
<param name="services"></param>
|
||||
<param name="globalDataFilter"></param>
|
||||
<param name="assemblies"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
@ -615,18 +615,21 @@ namespace FreeSql.Internal.CommonProvider
|
||||
{
|
||||
if (exp == null) return this as TSelect;
|
||||
_tables[0].Parameter = exp.Parameters[0];
|
||||
if (_tables.Count > 1 && _tables[1].Table.Type == typeof(T2)) _tables[1].Parameter = exp.Parameters[1];
|
||||
return this.InternalJoin(exp?.Body, SelectTableInfoType.LeftJoin);
|
||||
}
|
||||
public TSelect InnerJoin<T2>(Expression<Func<T1, T2, bool>> exp)
|
||||
{
|
||||
if (exp == null) return this as TSelect;
|
||||
_tables[0].Parameter = exp.Parameters[0];
|
||||
if (_tables.Count > 1 && _tables[1].Table.Type == typeof(T2)) _tables[1].Parameter = exp.Parameters[1];
|
||||
return this.InternalJoin(exp?.Body, SelectTableInfoType.InnerJoin);
|
||||
}
|
||||
public TSelect RightJoin<T2>(Expression<Func<T1, T2, bool>> exp)
|
||||
{
|
||||
if (exp == null) return this as TSelect;
|
||||
_tables[0].Parameter = exp.Parameters[0];
|
||||
if (_tables.Count > 1 && _tables[1].Table.Type == typeof(T2)) _tables[1].Parameter = exp.Parameters[1];
|
||||
return this.InternalJoin(exp?.Body, SelectTableInfoType.RightJoin);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user