diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs index da3fc0b8..ba879bbc 100644 --- a/Examples/base_entity/Program.cs +++ b/Examples/base_entity/Program.cs @@ -487,10 +487,38 @@ namespace base_entity BaseEntity.Initialization(fsql, () => _asyncUow.Value); #endregion + var dkdksql = fsql.Select().WithLock().From() + .InnerJoin((user, usergroup) => user.GroupId == usergroup.Id && usergroup.GroupName == "xxx") + .ToSql(); + //Func getName1 = () => "xxx"; //fsql.GlobalFilter.Apply("fil1", a => a.Nickname == getName1()); //var gnsql2 = fsql.Select().ToSql(); + using (var ctx9 = fsql.CreateDbContext()) + { + //var uset = ctx9.Set(); + //var item = new UserGroup + //{ + // GroupName = "group1" + //}; + //uset.Add(item); + //item.GroupName = "group1_2"; + //uset.Update(item); + var uset = ctx9.Set(); + 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().Where(a => strs.Any(b => b == a.Nickname)).ToSql(); var strssql2 = fsql.Select().Where(a => strs.Any(b => a.Nickname.Contains(b))).ToSql(); diff --git a/Extensions/FreeSql.Generator/FreeSql.Generator.csproj b/Extensions/FreeSql.Generator/FreeSql.Generator.csproj index 810aeef0..4290b3f7 100644 --- a/Extensions/FreeSql.Generator/FreeSql.Generator.csproj +++ b/Extensions/FreeSql.Generator/FreeSql.Generator.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.1;net60 + net60 true true true diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 537315e2..26522f10 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -800,5 +800,14 @@ + + + 批量注入 Repository,可以参考代码自行调整 + + + + + + diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs index 40fa38a9..a59076bf 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs @@ -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(Expression> 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(Expression> 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); }