mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
- 增加 ISelect.ToSql 字段别名设置,默认为 AsIndex,可改为 AsProperty;#158
This commit is contained in:
parent
204b6ecd98
commit
fe5b98509b
@ -110,6 +110,13 @@
|
|||||||
清空状态数据
|
清空状态数据
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
|
||||||
|
<summary>
|
||||||
|
根据 lambda 条件删除数据
|
||||||
|
</summary>
|
||||||
|
<param name="predicate"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:FreeSql.DbSet`1.Add(`0)">
|
<member name="M:FreeSql.DbSet`1.Add(`0)">
|
||||||
<summary>
|
<summary>
|
||||||
添加
|
添加
|
||||||
|
@ -995,6 +995,24 @@ WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title`
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -922,6 +922,24 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TiOtmModel1
|
public class TiOtmModel1
|
||||||
|
@ -887,6 +887,24 @@ WHERE (((cast(a.[Id] as nvarchar)) in (SELECT b.[Title]
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -1006,6 +1006,24 @@ WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title`
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -922,6 +922,24 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TiOtmModel1
|
public class TiOtmModel1
|
||||||
|
@ -978,6 +978,24 @@ WHERE ((((a.""id"")::varchar) in (SELECT b.""title""
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -868,6 +868,24 @@ WHERE (((cast(a.[Id] as nvarchar)) in (SELECT b.[Title]
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -1037,6 +1037,24 @@ WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title`
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -922,6 +922,24 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TiOtmModel1
|
public class TiOtmModel1
|
||||||
|
@ -995,6 +995,24 @@ WHERE ((((a.""id"")::varchar) in (SELECT b.""title""
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -913,6 +913,24 @@ WHERE (((cast(a.[Id] as nvarchar)) in (SELECT b.[Title]
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -906,6 +906,24 @@ WHERE (((cast(a.""Id"" as character)) in (SELECT b.""Title""
|
|||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Min(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Sum(a => a.Id);
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Avg(a => a.Id);
|
||||||
|
|
||||||
|
var sqlsss = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_1" : null)
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"{old}_2" : null)
|
||||||
|
.ToSql(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
}, FieldAliasOptions.AsProperty);
|
||||||
|
|
||||||
|
var slsld3 = select
|
||||||
|
.AsTable((type, old) => type == typeof(Topic) ? $"({sqlsss})" : null)
|
||||||
|
.Page(1, 20)
|
||||||
|
.ToList(a => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.Clicks
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -894,6 +894,17 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="F:FreeSql.FieldAliasOptions.AsIndex">
|
||||||
|
<summary>
|
||||||
|
自动产生 as1, as2, as3 .... 字段别名<para></para>
|
||||||
|
这种方法可以最大程度防止多表,存在相同字段的问题
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:FreeSql.FieldAliasOptions.AsProperty">
|
||||||
|
<summary>
|
||||||
|
使用属性名作为字段别名
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="M:FreeSql.ILinqToSql`1.Select``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})">
|
<member name="M:FreeSql.ILinqToSql`1.Select``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})">
|
||||||
<summary>
|
<summary>
|
||||||
【linq to sql】专用方法,不建议直接使用
|
【linq to sql】专用方法,不建议直接使用
|
||||||
@ -1316,12 +1327,13 @@
|
|||||||
<typeparam name="TDto"></typeparam>
|
<typeparam name="TDto"></typeparam>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:FreeSql.ISelect`1.ToSql``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})">
|
<member name="M:FreeSql.ISelect`1.ToSql``1(System.Linq.Expressions.Expression{System.Func{`0,``0}},FreeSql.FieldAliasOptions)">
|
||||||
<summary>
|
<summary>
|
||||||
返回即将执行的SQL语句
|
返回即将执行的SQL语句
|
||||||
</summary>
|
</summary>
|
||||||
<typeparam name="TReturn">返回类型</typeparam>
|
<typeparam name="TReturn">返回类型</typeparam>
|
||||||
<param name="select">选择列</param>
|
<param name="select">选择列</param>
|
||||||
|
<param name="fieldAlias">字段别名</param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:FreeSql.ISelect`1.ToAggregate``1(System.Linq.Expressions.Expression{System.Func{FreeSql.ISelectGroupingAggregate{`0},``0}})">
|
<member name="M:FreeSql.ISelect`1.ToAggregate``1(System.Linq.Expressions.Expression{System.Func{FreeSql.ISelectGroupingAggregate{`0},``0}})">
|
||||||
|
22
FreeSql/Interface/Curd/ISelect/FieldAliasOptions.cs
Normal file
22
FreeSql/Interface/Curd/ISelect/FieldAliasOptions.cs
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace FreeSql
|
||||||
|
{
|
||||||
|
public enum FieldAliasOptions
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 自动产生 as1, as2, as3 .... 字段别名<para></para>
|
||||||
|
/// 这种方法可以最大程度防止多表,存在相同字段的问题
|
||||||
|
/// </summary>
|
||||||
|
AsIndex,
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 使用属性名作为字段别名
|
||||||
|
/// </summary>
|
||||||
|
AsProperty
|
||||||
|
}
|
||||||
|
}
|
@ -89,8 +89,9 @@ namespace FreeSql
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="TReturn">返回类型</typeparam>
|
/// <typeparam name="TReturn">返回类型</typeparam>
|
||||||
/// <param name="select">选择列</param>
|
/// <param name="select">选择列</param>
|
||||||
|
/// <param name="fieldAlias">字段别名</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
string ToSql<TReturn>(Expression<Func<T1, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 执行SQL查询,返回指定字段的聚合结果
|
/// 执行SQL查询,返回指定字段的聚合结果
|
||||||
|
@ -28,7 +28,7 @@ namespace FreeSql
|
|||||||
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
||||||
List<TDto> ToList<TDto>();
|
List<TDto> ToList<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex);
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, ISelectGroupingAggregate<T9>, ISelectGroupingAggregate<T10>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, ISelectGroupingAggregate<T9>, ISelectGroupingAggregate<T10>, TReturn>> select);
|
||||||
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TMember>> column);
|
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TMember>> column);
|
||||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TMember>> column);
|
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TMember>> column);
|
||||||
|
@ -28,7 +28,7 @@ namespace FreeSql
|
|||||||
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, TReturn>> select);
|
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, TReturn>> select);
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, TReturn>> select);
|
||||||
List<TDto> ToList<TDto>();
|
List<TDto> ToList<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex);
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, TReturn>> select);
|
||||||
decimal Sum<TMember>(Expression<Func<T1, T2, TMember>> column);
|
decimal Sum<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||||
TMember Min<TMember>(Expression<Func<T1, T2, TMember>> column);
|
TMember Min<TMember>(Expression<Func<T1, T2, TMember>> column);
|
||||||
|
@ -28,7 +28,7 @@ namespace FreeSql
|
|||||||
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
||||||
List<TDto> ToList<TDto>();
|
List<TDto> ToList<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex);
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, TReturn>> select);
|
||||||
decimal Sum<TMember>(Expression<Func<T1, T2, T3, TMember>> column);
|
decimal Sum<TMember>(Expression<Func<T1, T2, T3, TMember>> column);
|
||||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, TMember>> column);
|
TMember Min<TMember>(Expression<Func<T1, T2, T3, TMember>> column);
|
||||||
|
@ -28,7 +28,7 @@ namespace FreeSql
|
|||||||
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
||||||
List<TDto> ToList<TDto>();
|
List<TDto> ToList<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex);
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, TReturn>> select);
|
||||||
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, TMember>> column);
|
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, TMember>> column);
|
||||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, TMember>> column);
|
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, TMember>> column);
|
||||||
|
@ -28,7 +28,7 @@ namespace FreeSql
|
|||||||
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
||||||
List<TDto> ToList<TDto>();
|
List<TDto> ToList<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex);
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, TReturn>> select);
|
||||||
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, TMember>> column);
|
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, TMember>> column);
|
||||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, TMember>> column);
|
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, TMember>> column);
|
||||||
|
@ -28,7 +28,7 @@ namespace FreeSql
|
|||||||
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
||||||
List<TDto> ToList<TDto>();
|
List<TDto> ToList<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex);
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, TReturn>> select);
|
||||||
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, TMember>> column);
|
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, TMember>> column);
|
||||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, TMember>> column);
|
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, TMember>> column);
|
||||||
|
@ -28,7 +28,7 @@ namespace FreeSql
|
|||||||
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
||||||
List<TDto> ToList<TDto>();
|
List<TDto> ToList<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex);
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, TReturn>> select);
|
||||||
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TMember>> column);
|
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TMember>> column);
|
||||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TMember>> column);
|
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TMember>> column);
|
||||||
|
@ -28,7 +28,7 @@ namespace FreeSql
|
|||||||
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
||||||
List<TDto> ToList<TDto>();
|
List<TDto> ToList<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex);
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, TReturn>> select);
|
||||||
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TMember>> column);
|
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TMember>> column);
|
||||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TMember>> column);
|
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TMember>> column);
|
||||||
|
@ -28,7 +28,7 @@ namespace FreeSql
|
|||||||
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
DataTable ToDataTable<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
||||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
||||||
List<TDto> ToList<TDto>();
|
List<TDto> ToList<TDto>();
|
||||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex);
|
||||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, ISelectGroupingAggregate<T9>, TReturn>> select);
|
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, ISelectGroupingAggregate<T9>, TReturn>> select);
|
||||||
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TMember>> column);
|
decimal Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TMember>> column);
|
||||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TMember>> column);
|
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TMember>> column);
|
||||||
|
@ -25,6 +25,7 @@ namespace FreeSql.Internal
|
|||||||
_common = common;
|
_common = common;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal const int ReadAnonymousFieldAsCsName = -53129;
|
||||||
public bool ReadAnonymousField(List<SelectTableInfo> _tables, StringBuilder field, ReadAnonymousTypeInfo parent, ref int index, Expression exp, Func<Expression[], string> getSelectGroupingMapString, List<LambdaExpression> whereCascadeExpression, bool isAllDtoMap)
|
public bool ReadAnonymousField(List<SelectTableInfo> _tables, StringBuilder field, ReadAnonymousTypeInfo parent, ref int index, Expression exp, Func<Expression[], string> getSelectGroupingMapString, List<LambdaExpression> whereCascadeExpression, bool isAllDtoMap)
|
||||||
{
|
{
|
||||||
Func<ExpTSC> getTSC = () => new ExpTSC { _tables = _tables, getSelectGroupingMapString = getSelectGroupingMapString, tbtype = SelectTableInfoType.From, isQuoteName = true, isDisableDiyParse = false, style = ExpressionStyle.Where, whereCascadeExpression = whereCascadeExpression };
|
Func<ExpTSC> getTSC = () => new ExpTSC { _tables = _tables, getSelectGroupingMapString = getSelectGroupingMapString, tbtype = SelectTableInfoType.From, isQuoteName = true, isDisableDiyParse = false, style = ExpressionStyle.Where, whereCascadeExpression = whereCascadeExpression };
|
||||||
@ -37,6 +38,7 @@ namespace FreeSql.Internal
|
|||||||
parent.DbField = $"-({ExpressionLambdaToSql(exp, getTSC())})";
|
parent.DbField = $"-({ExpressionLambdaToSql(exp, getTSC())})";
|
||||||
field.Append(", ").Append(parent.DbField);
|
field.Append(", ").Append(parent.DbField);
|
||||||
if (index >= 0) field.Append(" as").Append(++index);
|
if (index >= 0) field.Append(" as").Append(++index);
|
||||||
|
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(" ").Append(parent.CsName);
|
||||||
return false;
|
return false;
|
||||||
case ExpressionType.Convert: return ReadAnonymousField(_tables, field, parent, ref index, (exp as UnaryExpression)?.Operand, getSelectGroupingMapString, whereCascadeExpression, isAllDtoMap);
|
case ExpressionType.Convert: return ReadAnonymousField(_tables, field, parent, ref index, (exp as UnaryExpression)?.Operand, getSelectGroupingMapString, whereCascadeExpression, isAllDtoMap);
|
||||||
case ExpressionType.Constant:
|
case ExpressionType.Constant:
|
||||||
@ -54,6 +56,7 @@ namespace FreeSql.Internal
|
|||||||
parent.DbField = _common.FormatSql("{0}", constExp?.Value);
|
parent.DbField = _common.FormatSql("{0}", constExp?.Value);
|
||||||
field.Append(", ").Append(parent.DbField);
|
field.Append(", ").Append(parent.DbField);
|
||||||
if (index >= 0) field.Append(" as").Append(++index);
|
if (index >= 0) field.Append(" as").Append(++index);
|
||||||
|
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(" ").Append(parent.CsName);
|
||||||
return false;
|
return false;
|
||||||
case ExpressionType.Call:
|
case ExpressionType.Call:
|
||||||
var callExp = exp as MethodCallExpression;
|
var callExp = exp as MethodCallExpression;
|
||||||
@ -70,6 +73,7 @@ namespace FreeSql.Internal
|
|||||||
parent.DbField = ExpressionLambdaToSql(exp, getTSC());
|
parent.DbField = ExpressionLambdaToSql(exp, getTSC());
|
||||||
field.Append(", ").Append(parent.DbField);
|
field.Append(", ").Append(parent.DbField);
|
||||||
if (index >= 0) field.Append(" as").Append(++index);
|
if (index >= 0) field.Append(" as").Append(++index);
|
||||||
|
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(" ").Append(parent.CsName);
|
||||||
return false;
|
return false;
|
||||||
case ExpressionType.Parameter:
|
case ExpressionType.Parameter:
|
||||||
case ExpressionType.MemberAccess:
|
case ExpressionType.MemberAccess:
|
||||||
@ -102,6 +106,7 @@ namespace FreeSql.Internal
|
|||||||
parent.DbField = ExpressionLambdaToSql(exp, getTSC());
|
parent.DbField = ExpressionLambdaToSql(exp, getTSC());
|
||||||
field.Append(", ").Append(parent.DbField);
|
field.Append(", ").Append(parent.DbField);
|
||||||
if (index >= 0) field.Append(" as").Append(++index);
|
if (index >= 0) field.Append(" as").Append(++index);
|
||||||
|
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(" ").Append(parent.CsName);
|
||||||
parent.MapType = SearchColumnByField(_tables, null, parent.DbField)?.Attribute.MapType ?? exp.Type;
|
parent.MapType = SearchColumnByField(_tables, null, parent.DbField)?.Attribute.MapType ?? exp.Type;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -219,6 +224,7 @@ namespace FreeSql.Internal
|
|||||||
parent.DbField = $"({ExpressionLambdaToSql(exp, getTSC())})";
|
parent.DbField = $"({ExpressionLambdaToSql(exp, getTSC())})";
|
||||||
field.Append(", ").Append(parent.DbField);
|
field.Append(", ").Append(parent.DbField);
|
||||||
if (index >= 0) field.Append(" as").Append(++index);
|
if (index >= 0) field.Append(" as").Append(++index);
|
||||||
|
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(" ").Append(parent.CsName);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
public object ReadAnonymous(ReadAnonymousTypeInfo parent, DbDataReader dr, ref int index, bool notRead, ReadAnonymousDbValueRef dbValue)
|
public object ReadAnonymous(ReadAnonymousTypeInfo parent, DbDataReader dr, ref int index, bool notRead, ReadAnonymousDbValueRef dbValue)
|
||||||
|
@ -525,11 +525,11 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return ToListMrPrivate<TReturn>(sql, af, otherData);
|
return ToListMrPrivate<TReturn>(sql, af, otherData);
|
||||||
}
|
}
|
||||||
protected List<TReturn> ToListMapReader<TReturn>((ReadAnonymousTypeInfo map, string field) af) => ToListMapReaderPrivate<TReturn>(af, null);
|
protected List<TReturn> ToListMapReader<TReturn>((ReadAnonymousTypeInfo map, string field) af) => ToListMapReaderPrivate<TReturn>(af, null);
|
||||||
protected (ReadAnonymousTypeInfo map, string field) GetExpressionField(Expression newexp)
|
protected (ReadAnonymousTypeInfo map, string field) GetExpressionField(Expression newexp, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
var map = new ReadAnonymousTypeInfo();
|
var map = new ReadAnonymousTypeInfo();
|
||||||
var field = new StringBuilder();
|
var field = new StringBuilder();
|
||||||
var index = 0;
|
var index = fieldAlias == FieldAliasOptions.AsProperty ? CommonExpression.ReadAnonymousFieldAsCsName : 0;
|
||||||
|
|
||||||
_commonExpression.ReadAnonymousField(_tables, field, map, ref index, newexp, null, _whereCascadeExpression, true);
|
_commonExpression.ReadAnonymousField(_tables, field, map, ref index, newexp, null, _whereCascadeExpression, true);
|
||||||
return (map, field.Length > 0 ? field.Remove(0, 2).ToString() : null);
|
return (map, field.Length > 0 ? field.Remove(0, 2).ToString() : null);
|
||||||
@ -1059,9 +1059,9 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
protected TSelect InternalOrderByDescending(Expression column) => this.OrderBy($"{_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, column, true, null)} DESC");
|
protected TSelect InternalOrderByDescending(Expression column) => this.OrderBy($"{_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, column, true, null)} DESC");
|
||||||
|
|
||||||
protected List<TReturn> InternalToList<TReturn>(Expression select) => this.ToListMapReader<TReturn>(this.GetExpressionField(select));
|
protected List<TReturn> InternalToList<TReturn>(Expression select) => this.ToListMapReader<TReturn>(this.GetExpressionField(select));
|
||||||
protected string InternalToSql<TReturn>(Expression select)
|
protected string InternalToSql<TReturn>(Expression select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
var af = this.GetExpressionField(select);
|
var af = this.GetExpressionField(select, fieldAlias);
|
||||||
return this.ToSql(af.field);
|
return this.ToSql(af.field);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,11 +121,11 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return this.InternalToDataTable(select?.Body);
|
return this.InternalToDataTable(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
string ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select)
|
string ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
if (select == null) return this.InternalToSql<TReturn>(select?.Body);
|
if (select == null) return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToSql<TReturn>(select?.Body);
|
return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, bool>> exp)
|
ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, bool>> exp)
|
||||||
|
@ -263,11 +263,11 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return this.InternalToDataTable(select?.Body);
|
return this.InternalToDataTable(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string ToSql<TReturn>(Expression<Func<T1, TReturn>> select)
|
public string ToSql<TReturn>(Expression<Func<T1, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
if (select == null) return this.InternalToSql<TReturn>(select?.Body);
|
if (select == null) return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
_tables[0].Parameter = select.Parameters[0];
|
_tables[0].Parameter = select.Parameters[0];
|
||||||
return this.InternalToSql<TReturn>(select?.Body);
|
return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
}
|
}
|
||||||
|
|
||||||
public TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, TReturn>> select)
|
public TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, TReturn>> select)
|
||||||
|
@ -98,11 +98,11 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return this.InternalToDataTable(select?.Body);
|
return this.InternalToDataTable(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
string ISelect<T1, T2>.ToSql<TReturn>(Expression<Func<T1, T2, TReturn>> select)
|
string ISelect<T1, T2>.ToSql<TReturn>(Expression<Func<T1, T2, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
if (select == null) return this.InternalToSql<TReturn>(select?.Body);
|
if (select == null) return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToSql<TReturn>(select?.Body);
|
return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISelect<T1, T2> ISelect<T1, T2>.LeftJoin(Expression<Func<T1, T2, bool>> exp)
|
ISelect<T1, T2> ISelect<T1, T2>.LeftJoin(Expression<Func<T1, T2, bool>> exp)
|
||||||
|
@ -101,11 +101,11 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return this.InternalToDataTable(select?.Body);
|
return this.InternalToDataTable(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
string ISelect<T1, T2, T3>.ToSql<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select)
|
string ISelect<T1, T2, T3>.ToSql<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
if (select == null) return this.InternalToSql<TReturn>(select?.Body);
|
if (select == null) return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToSql<TReturn>(select?.Body);
|
return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISelect<T1, T2, T3> ISelect<T1, T2, T3>.LeftJoin(Expression<Func<T1, T2, T3, bool>> exp)
|
ISelect<T1, T2, T3> ISelect<T1, T2, T3>.LeftJoin(Expression<Func<T1, T2, T3, bool>> exp)
|
||||||
|
@ -104,11 +104,11 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return this.InternalToDataTable(select?.Body);
|
return this.InternalToDataTable(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
string ISelect<T1, T2, T3, T4>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select)
|
string ISelect<T1, T2, T3, T4>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
if (select == null) return this.InternalToSql<TReturn>(select?.Body);
|
if (select == null) return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToSql<TReturn>(select?.Body);
|
return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISelect<T1, T2, T3, T4> ISelect<T1, T2, T3, T4>.LeftJoin(Expression<Func<T1, T2, T3, T4, bool>> exp)
|
ISelect<T1, T2, T3, T4> ISelect<T1, T2, T3, T4>.LeftJoin(Expression<Func<T1, T2, T3, T4, bool>> exp)
|
||||||
|
@ -107,11 +107,11 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return this.InternalToDataTable(select?.Body);
|
return this.InternalToDataTable(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
string ISelect<T1, T2, T3, T4, T5>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select)
|
string ISelect<T1, T2, T3, T4, T5>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
if (select == null) return this.InternalToSql<TReturn>(select?.Body);
|
if (select == null) return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToSql<TReturn>(select?.Body);
|
return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISelect<T1, T2, T3, T4, T5> ISelect<T1, T2, T3, T4, T5>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, bool>> exp)
|
ISelect<T1, T2, T3, T4, T5> ISelect<T1, T2, T3, T4, T5>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, bool>> exp)
|
||||||
|
@ -110,11 +110,11 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return this.InternalToDataTable(select?.Body);
|
return this.InternalToDataTable(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
string ISelect<T1, T2, T3, T4, T5, T6>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select)
|
string ISelect<T1, T2, T3, T4, T5, T6>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
if (select == null) return this.InternalToSql<TReturn>(select?.Body);
|
if (select == null) return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToSql<TReturn>(select?.Body);
|
return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISelect<T1, T2, T3, T4, T5, T6> ISelect<T1, T2, T3, T4, T5, T6>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, T6, bool>> exp)
|
ISelect<T1, T2, T3, T4, T5, T6> ISelect<T1, T2, T3, T4, T5, T6>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, T6, bool>> exp)
|
||||||
|
@ -113,11 +113,11 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return this.InternalToDataTable(select?.Body);
|
return this.InternalToDataTable(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
string ISelect<T1, T2, T3, T4, T5, T6, T7>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select)
|
string ISelect<T1, T2, T3, T4, T5, T6, T7>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
if (select == null) return this.InternalToSql<TReturn>(select?.Body);
|
if (select == null) return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToSql<TReturn>(select?.Body);
|
return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISelect<T1, T2, T3, T4, T5, T6, T7> ISelect<T1, T2, T3, T4, T5, T6, T7>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, T6, T7, bool>> exp)
|
ISelect<T1, T2, T3, T4, T5, T6, T7> ISelect<T1, T2, T3, T4, T5, T6, T7>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, T6, T7, bool>> exp)
|
||||||
|
@ -117,11 +117,11 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return this.InternalToDataTable(select?.Body);
|
return this.InternalToDataTable(select?.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
string ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select)
|
string ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
if (select == null) return this.InternalToSql<TReturn>(select?.Body);
|
if (select == null) return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToSql<TReturn>(select?.Body);
|
return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISelect<T1, T2, T3, T4, T5, T6, T7, T8> ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, bool>> exp)
|
ISelect<T1, T2, T3, T4, T5, T6, T7, T8> ISelect<T1, T2, T3, T4, T5, T6, T7, T8>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, bool>> exp)
|
||||||
|
@ -117,11 +117,11 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToDataTable(select?.Body);
|
return this.InternalToDataTable(select?.Body);
|
||||||
}
|
}
|
||||||
string ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select)
|
string ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select, FieldAliasOptions fieldAlias = FieldAliasOptions.AsIndex)
|
||||||
{
|
{
|
||||||
if (select == null) return this.InternalToSql<TReturn>(select?.Body);
|
if (select == null) return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
for (var a = 0; a < select.Parameters.Count; a++) _tables[a].Parameter = select.Parameters[a];
|
||||||
return this.InternalToSql<TReturn>(select?.Body);
|
return this.InternalToSql<TReturn>(select?.Body, fieldAlias);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, bool>> exp)
|
ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9> ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>.LeftJoin(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, bool>> exp)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user