mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-15 05:13:27 +08:00
Subquery WhereIF bug
This commit is contained in:
parent
5753377cdf
commit
5f9b18ab5f
@ -9,9 +9,10 @@ namespace OrmTest.BugTest
|
|||||||
{
|
{
|
||||||
public class Bug2
|
public class Bug2
|
||||||
{
|
{
|
||||||
public SqlSugarClient DB
|
public SqlSugarClient DB
|
||||||
{
|
{
|
||||||
get {
|
get
|
||||||
|
{
|
||||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
|
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
|
||||||
{
|
{
|
||||||
InitKeyType = InitKeyType.Attribute,
|
InitKeyType = InitKeyType.Attribute,
|
||||||
@ -22,15 +23,71 @@ namespace OrmTest.BugTest
|
|||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void Init() {
|
public void Init()
|
||||||
var x2= DB.Queryable<School>().Where(x => x.Id == SqlFunc.Subqueryable<School>().Where(y => y.Id == SqlFunc.Subqueryable<Student>().Where(yy => y.Id == x.Id).Select(yy => yy.Id)).Select(y => y.Id)).ToSql();
|
{
|
||||||
if (!x2.Key.Contains("STudent")) {
|
var x2 = DB.Queryable<School>().Where(x => x.Id == SqlFunc.Subqueryable<School>().Where(y => y.Id == SqlFunc.Subqueryable<Student>().Where(yy => y.Id == x.Id).Select(yy => yy.Id)).Select(y => y.Id)).ToSql();
|
||||||
// throw new Exception("bug2 error");
|
if (!x2.Key.Contains("STudent"))
|
||||||
|
{
|
||||||
|
// throw new Exception("bug2 error");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var UserNameOrName = "111";
|
||||||
|
var OrganizationUnitId = 0;
|
||||||
|
var RoleId = 0;
|
||||||
|
var sql = DB.Queryable<User>().//一对多的子查询
|
||||||
|
WhereIF(!string.IsNullOrWhiteSpace(UserNameOrName), t1 => t1.Name.Contains(UserNameOrName)).
|
||||||
|
Where(t1 =>
|
||||||
|
SqlFunc.Subqueryable<UserOrganizationUnit>().
|
||||||
|
Where(t2 => t2.UserId == t1.Id).
|
||||||
|
WhereIF(OrganizationUnitId > 0, t2 => t2.OrganizationUnitId == OrganizationUnitId).Any())
|
||||||
|
// Where(t1 => SqlFunc.Subqueryable<UserRole>().
|
||||||
|
//Where(t3 => t3.UserId == t1.Id).
|
||||||
|
//WhereIF(RoleId > 0, t3 => t3.RoleId == RoleId).Any())
|
||||||
|
.Select(t1 => new User { Id = SqlFunc.GetSelfAndAutoFill(t1.Id) }).ToSql();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///<summary>
|
||||||
|
///用户信息表
|
||||||
|
///</summary>
|
||||||
|
public partial class User
|
||||||
|
{
|
||||||
|
///<summary>
|
||||||
|
/// 描述:主键
|
||||||
|
/// 默认值:
|
||||||
|
/// 是否可空: False
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||||
|
public long Id { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public partial class UserOrganizationUnit
|
||||||
|
{
|
||||||
|
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||||
|
public long Id { get; set; }
|
||||||
|
|
||||||
|
public long UserId { get; set; }
|
||||||
|
|
||||||
|
public long OrganizationUnitId { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
///<summary>
|
||||||
|
///用户角色关系表
|
||||||
|
///</summary>
|
||||||
|
public partial class UserRole
|
||||||
|
{
|
||||||
|
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||||
|
public long Id { get; set; }
|
||||||
|
|
||||||
|
public long UserId { get; set; }
|
||||||
|
|
||||||
|
public int RoleId { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
var isWhere= Convert.ToBoolean(value);
|
var isWhere= Convert.ToBoolean(value);
|
||||||
if (!Convert.ToBoolean(isWhere)) {
|
if (!Convert.ToBoolean(isWhere)) {
|
||||||
return "";
|
return "WHERE 1=1 ";
|
||||||
}
|
}
|
||||||
var argExp = exp.Arguments[1];
|
var argExp = exp.Arguments[1];
|
||||||
var result = "WHERE " + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple); ;
|
var result = "WHERE " + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple); ;
|
||||||
|
Loading…
Reference in New Issue
Block a user