mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 修复 ISelect.AsTable union all 查询对 count/max/min/avg/sum 的别名 bug;#157
This commit is contained in:
parent
fe7b7e5012
commit
51494c31a2
@ -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>
|
||||||
添加
|
添加
|
||||||
|
@ -954,6 +954,21 @@ namespace FreeSql.Tests.MySqlConnector
|
|||||||
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topicAsTable1` a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", sql);
|
Assert.Equal("SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topicAsTable1` a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -881,6 +881,21 @@ namespace FreeSql.Tests.Odbc.Dameng
|
|||||||
query = select.LeftJoin("\"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("\"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22_T1\" a LEFT JOIN \"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", sql);
|
Assert.Equal("SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22_T1\" a LEFT JOIN \"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TiOtmModel1
|
public class TiOtmModel1
|
||||||
|
@ -850,6 +850,21 @@ namespace FreeSql.Tests.Odbc.Default
|
|||||||
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22AsTable1] a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", sql);
|
Assert.Equal("SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22AsTable1] a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -965,6 +965,21 @@ namespace FreeSql.Tests.Odbc.MySql
|
|||||||
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topicAsTable1` a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", sql);
|
Assert.Equal("SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topicAsTable1` a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -881,6 +881,21 @@ namespace FreeSql.Tests.Odbc.Oracle
|
|||||||
query = select.LeftJoin("\"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("\"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22_T1\" a LEFT JOIN \"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", sql);
|
Assert.Equal("SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22_T1\" a LEFT JOIN \"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TiOtmModel1
|
public class TiOtmModel1
|
||||||
|
@ -937,6 +937,21 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
|
|||||||
query = select.LeftJoin("\"testtypeinfo\" b on b.\"guid\" = a.\"typeguid\" and b.\"name\" = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("\"testtypeinfo\" b on b.\"guid\" = a.\"typeguid\" and b.\"name\" = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topicastable1\" a LEFT JOIN \"testtypeinfo\" b on b.\"guid\" = a.\"typeguid\" and b.\"name\" = @bname", sql);
|
Assert.Equal("SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topicastable1\" a LEFT JOIN \"testtypeinfo\" b on b.\"guid\" = a.\"typeguid\" and b.\"name\" = @bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb UNION ALLSELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -831,6 +831,21 @@ namespace FreeSql.Tests.Odbc.SqlServer
|
|||||||
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22AsTable1] a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", sql);
|
Assert.Equal("SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22AsTable1] a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -996,6 +996,21 @@ namespace FreeSql.Tests.MySql
|
|||||||
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topicAsTable1` a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", sql);
|
Assert.Equal("SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topicAsTable1` a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = ?bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -881,6 +881,21 @@ namespace FreeSql.Tests.Oracle
|
|||||||
query = select.LeftJoin("\"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("\"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22_T1\" a LEFT JOIN \"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", sql);
|
Assert.Equal("SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22_T1\" a LEFT JOIN \"TESTTYPEINFO\" b on b.\"GUID\" = a.\"TYPEGUID\" and b.\"NAME\" = :bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TiOtmModel1
|
public class TiOtmModel1
|
||||||
|
@ -954,6 +954,21 @@ namespace FreeSql.Tests.PostgreSQL
|
|||||||
query = select.LeftJoin("\"testtypeinfo\" b on b.\"guid\" = a.\"typeguid\" and b.\"name\" = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("\"testtypeinfo\" b on b.\"guid\" = a.\"typeguid\" and b.\"name\" = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topicastable1\" a LEFT JOIN \"testtypeinfo\" b on b.\"guid\" = a.\"typeguid\" and b.\"name\" = @bname", sql);
|
Assert.Equal("SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topicastable1\" a LEFT JOIN \"testtypeinfo\" b on b.\"guid\" = a.\"typeguid\" and b.\"name\" = @bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb UNION ALLSELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -876,6 +876,21 @@ namespace FreeSql.Tests.SqlServer
|
|||||||
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22AsTable1] a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", sql);
|
Assert.Equal("SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22AsTable1] a LEFT JOIN TestTypeInfo b on b.Guid = a.TypeGuid and b.Name = @bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -865,6 +865,21 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
query = select.LeftJoin("\"TestTypeInfo\" b on b.\"Guid\" = a.\"TypeGuid\" and b.\"Name\" = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
query = select.LeftJoin("\"TestTypeInfo\" b on b.\"Guid\" = a.\"TypeGuid\" and b.\"Name\" = @bname", new { bname = "xxx" }).AsTable(tableRule);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
Assert.Equal("SELECT a.\"Id\", a.\"Clicks\", a.\"TypeGuid\", a.\"Title\", a.\"CreateTime\" FROM \"tb_topic22AsTable1\" a LEFT JOIN \"TestTypeInfo\" b on b.\"Guid\" = a.\"TypeGuid\" and b.\"Name\" = @bname", sql);
|
Assert.Equal("SELECT a.\"Id\", a.\"Clicks\", a.\"TypeGuid\", a.\"Title\", a.\"CreateTime\" FROM \"tb_topic22AsTable1\" a LEFT JOIN \"TestTypeInfo\" b on b.\"Guid\" = a.\"TypeGuid\" and b.\"Name\" = @bname", sql);
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql().Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT a.\"Id\", a.\"Clicks\", a.\"TypeGuid\", a.\"Title\", a.\"CreateTime\" FROM \"tb_topic22\" a) ftb UNION ALLSELECT * from (SELECT a.\"Id\", a.\"Clicks\", a.\"TypeGuid\", a.\"Title\", a.\"CreateTime\" FROM \"tb_topic22\" a) ftb", sql);
|
||||||
|
query.ToList();
|
||||||
|
|
||||||
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
|
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
||||||
|
Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"tb_topic22\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"tb_topic22\" a) ftb", sql);
|
||||||
|
query.Count();
|
||||||
|
|
||||||
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(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).Avg(a => a.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestInclude_OneToManyModel1
|
public class TestInclude_OneToManyModel1
|
||||||
|
@ -2257,193 +2257,7 @@
|
|||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.IAop.ParseExpression">
|
<member name="P:FreeSql.IAop.ParseExpression">
|
||||||
<summary>
|
<sum环境必备】自动同步实体结构到数据库,程序运行中检查实体表是否存在,然后创建或修改
|
||||||
可自定义解析表达式
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.IAop.ConfigEntity">
|
|
||||||
<summary>
|
|
||||||
自定义实体的配置,方便和多个 ORM 共同使用
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.IAop.ConfigEntityProperty">
|
|
||||||
<summary>
|
|
||||||
自定义实体的属性配置,方便和多个 ORM 共同使用
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.IAop.CurdBefore">
|
|
||||||
<summary>
|
|
||||||
增删查改,执行命令之前触发
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.IAop.CurdAfter">
|
|
||||||
<summary>
|
|
||||||
增删查改,执行命令完成后触发
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.IAop.SyncStructureBefore">
|
|
||||||
<summary>
|
|
||||||
CodeFirst迁移,执行之前触发
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.IAop.SyncStructureAfter">
|
|
||||||
<summary>
|
|
||||||
CodeFirst迁移,执行完成触发
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.IAop.AuditValue">
|
|
||||||
<summary>
|
|
||||||
Insert/Update自动值处理
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.ParseExpressionEventArgs.FreeParse">
|
|
||||||
<summary>
|
|
||||||
内置解析功能,可辅助您进行解析
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.ParseExpressionEventArgs.Expression">
|
|
||||||
<summary>
|
|
||||||
需要您解析的表达式
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.ParseExpressionEventArgs.Result">
|
|
||||||
<summary>
|
|
||||||
解析后的内容
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.ConfigEntityEventArgs.EntityType">
|
|
||||||
<summary>
|
|
||||||
实体类型
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.ConfigEntityEventArgs.ModifyResult">
|
|
||||||
<summary>
|
|
||||||
实体配置
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.ConfigEntityEventArgs.ModifyIndexResult">
|
|
||||||
<summary>
|
|
||||||
索引配置
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.ConfigEntityPropertyEventArgs.EntityType">
|
|
||||||
<summary>
|
|
||||||
实体类型
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.ConfigEntityPropertyEventArgs.Property">
|
|
||||||
<summary>
|
|
||||||
实体的属性
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.ConfigEntityPropertyEventArgs.ModifyResult">
|
|
||||||
<summary>
|
|
||||||
实体的属性配置
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.Identifier">
|
|
||||||
<summary>
|
|
||||||
标识符,可将 CurdBefore 与 CurdAfter 进行匹配
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.CurdType">
|
|
||||||
<summary>
|
|
||||||
操作类型
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.EntityType">
|
|
||||||
<summary>
|
|
||||||
实体类型
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.Table">
|
|
||||||
<summary>
|
|
||||||
实体类型的元数据
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.Sql">
|
|
||||||
<summary>
|
|
||||||
执行的 SQL
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.DbParms">
|
|
||||||
<summary>
|
|
||||||
参数化命令
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.CurdAfterEventArgs.Exception">
|
|
||||||
<summary>
|
|
||||||
发生的错误
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.CurdAfterEventArgs.ExecuteResult">
|
|
||||||
<summary>
|
|
||||||
执行SQL命令,返回的结果
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.CurdAfterEventArgs.ElapsedTicks">
|
|
||||||
<summary>
|
|
||||||
耗时(单位:Ticks)
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.CurdAfterEventArgs.ElapsedMilliseconds">
|
|
||||||
<summary>
|
|
||||||
耗时(单位:毫秒)
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.SyncStructureBeforeEventArgs.Identifier">
|
|
||||||
<summary>
|
|
||||||
标识符,可将 SyncStructureBeforeEventArgs 与 SyncStructureAfterEventArgs 进行匹配
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.SyncStructureBeforeEventArgs.EntityTypes">
|
|
||||||
<summary>
|
|
||||||
实体类型
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.SyncStructureAfterEventArgs.Sql">
|
|
||||||
<summary>
|
|
||||||
执行的 SQL
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.SyncStructureAfterEventArgs.Exception">
|
|
||||||
<summary>
|
|
||||||
发生的错误
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.SyncStructureAfterEventArgs.ElapsedTicks">
|
|
||||||
<summary>
|
|
||||||
耗时(单位:Ticks)
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.SyncStructureAfterEventArgs.ElapsedMilliseconds">
|
|
||||||
<summary>
|
|
||||||
耗时(单位:毫秒)
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.AuditValueEventArgs.AuditValueType">
|
|
||||||
<summary>
|
|
||||||
类型
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.AuditValueEventArgs.Column">
|
|
||||||
<summary>
|
|
||||||
属性列的元数据
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.AuditValueEventArgs.Property">
|
|
||||||
<summary>
|
|
||||||
反射的属性信息
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.Aop.AuditValueEventArgs.Value">
|
|
||||||
<summary>
|
|
||||||
获取实体的属性值,也可以设置实体的属性新值
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:FreeSql.ICodeFirst.IsAutoSyncStructure">
|
|
||||||
<summary>
|
|
||||||
【开发环境必备】自动同步实体结构到数据库,程序运行中检查实体表是否存在,然后创建或修改
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.ICodeFirst.IsSyncStructureToLower">
|
<member name="P:FreeSql.ICodeFirst.IsSyncStructureToLower">
|
||||||
@ -3034,3 +2848,160 @@
|
|||||||
</member>
|
</member>
|
||||||
</members>
|
</members>
|
||||||
</doc>
|
</doc>
|
||||||
|
unc{``0,System.Boolean}},System.Boolean,System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})">
|
||||||
|
<summary>
|
||||||
|
使用 or 拼接两个 lambda 表达式
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<param name="exp1"></param>
|
||||||
|
<param name="condition">true 时生效</param>
|
||||||
|
<param name="exp2"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Linq.Expressions.LambadaExpressionExtensions.Not``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
将 lambda 表达式取反
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<param name="exp"></param>
|
||||||
|
<param name="condition">true 时生效</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:FreeUtil.NewMongodbId">
|
||||||
|
<summary>
|
||||||
|
生成类似Mongodb的ObjectId有序、不重复Guid
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Insert``1">
|
||||||
|
<summary>
|
||||||
|
插入数据
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Insert``1(``0)">
|
||||||
|
<summary>
|
||||||
|
插入数据,传入实体
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<param name="source"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Insert``1(``0[])">
|
||||||
|
<summary>
|
||||||
|
插入数据,传入实体数组
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<param name="source"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Insert``1(System.Collections.Generic.List{``0})">
|
||||||
|
<summary>
|
||||||
|
插入数据,传入实体集合
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<param name="source"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Insert``1(System.Collections.Generic.IEnumerable{``0})">
|
||||||
|
<summary>
|
||||||
|
插入数据,传入实体集合
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<param name="source"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Update``1">
|
||||||
|
<summary>
|
||||||
|
修改数据
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Update``1(System.Object)">
|
||||||
|
<summary>
|
||||||
|
修改数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Select``1">
|
||||||
|
<summary>
|
||||||
|
查询数据
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Select``1(System.Object)">
|
||||||
|
<summary>
|
||||||
|
查询数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Delete``1">
|
||||||
|
<summary>
|
||||||
|
删除数据
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Delete``1(System.Object)">
|
||||||
|
<summary>
|
||||||
|
删除数据,传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T1"></typeparam>
|
||||||
|
<param name="dywhere">主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Transaction(System.Action)">
|
||||||
|
<summary>
|
||||||
|
开启事务(不支持异步),60秒未执行完成(可能)被其他线程事务自动提交
|
||||||
|
</summary>
|
||||||
|
<param name="handler">事务体 () => {}</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Transaction(System.TimeSpan,System.Action)">
|
||||||
|
<summary>
|
||||||
|
开启事务(不支持异步)
|
||||||
|
</summary>
|
||||||
|
<param name="timeout">超时,未执行完成(可能)被其他线程事务自动提交</param>
|
||||||
|
<param name="handler">事务体 () => {}</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:IFreeSql.Transaction(System.Data.IsolationLevel,System.TimeSpan,System.Action)">
|
||||||
|
<summary>
|
||||||
|
开启事务(不支持异步)
|
||||||
|
</summary>
|
||||||
|
<param name="isolationLevel"></param>
|
||||||
|
<param name="handler">事务体 () => {}</param>
|
||||||
|
<param name="timeout">超时,未执行完成(可能)被其他线程事务自动提交</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:IFreeSql.Ado">
|
||||||
|
<summary>
|
||||||
|
数据库访问对象
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IFreeSql.Aop">
|
||||||
|
<summary>
|
||||||
|
所有拦截方法都在这里
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IFreeSql.CodeFirst">
|
||||||
|
<summary>
|
||||||
|
CodeFirst 模式开发相关方法
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IFreeSql.DbFirst">
|
||||||
|
<summary>
|
||||||
|
DbFirst 模式开发相关方法
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IFreeSql.GlobalFilter">
|
||||||
|
<summary>
|
||||||
|
全局过滤设置,可默认附加为 Select/Update/Delete 条件
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
|
@ -155,10 +155,10 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
public bool Any()
|
public bool Any()
|
||||||
{
|
{
|
||||||
this.Limit(1);
|
this.Limit(1);
|
||||||
return this.ToList<int>("1").FirstOrDefault() == 1;
|
return this.ToList<int>("1 as1").FirstOrDefault() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long Count() => this.ToList<int>("count(1)").FirstOrDefault();
|
public long Count() => this.ToList<int>("count(1) as1").FirstOrDefault();
|
||||||
|
|
||||||
public TSelect Count(out long count)
|
public TSelect Count(out long count)
|
||||||
{
|
{
|
||||||
@ -1023,10 +1023,10 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
}
|
}
|
||||||
#region common
|
#region common
|
||||||
|
|
||||||
protected TMember InternalAvg<TMember>(Expression exp) => this.ToList<TMember>($"avg({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)})").FirstOrDefault();
|
protected TMember InternalAvg<TMember>(Expression exp) => this.ToList<TMember>($"avg({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)}) as1").FirstOrDefault();
|
||||||
protected TMember InternalMax<TMember>(Expression exp) => this.ToList<TMember>($"max({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)})").FirstOrDefault();
|
protected TMember InternalMax<TMember>(Expression exp) => this.ToList<TMember>($"max({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)}) as1").FirstOrDefault();
|
||||||
protected TMember InternalMin<TMember>(Expression exp) => this.ToList<TMember>($"min({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)})").FirstOrDefault();
|
protected TMember InternalMin<TMember>(Expression exp) => this.ToList<TMember>($"min({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)}) as1").FirstOrDefault();
|
||||||
protected TMember InternalSum<TMember>(Expression exp) => this.ToList<TMember>($"sum({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)})").FirstOrDefault();
|
protected TMember InternalSum<TMember>(Expression exp) => this.ToList<TMember>($"sum({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)}) as1").FirstOrDefault();
|
||||||
|
|
||||||
protected ISelectGrouping<TKey, TValue> InternalGroupBy<TKey, TValue>(Expression columns)
|
protected ISelectGrouping<TKey, TValue> InternalGroupBy<TKey, TValue>(Expression columns)
|
||||||
{
|
{
|
||||||
@ -1104,10 +1104,10 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
async public Task<bool> AnyAsync()
|
async public Task<bool> AnyAsync()
|
||||||
{
|
{
|
||||||
this.Limit(1);
|
this.Limit(1);
|
||||||
return (await this.ToListAsync<int>("1")).FirstOrDefault() == 1;
|
return (await this.ToListAsync<int>("1 as1")).FirstOrDefault() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
async public Task<long> CountAsync() => (await this.ToListAsync<int>("count(1)")).FirstOrDefault();
|
async public Task<long> CountAsync() => (await this.ToListAsync<int>("count(1) as1")).FirstOrDefault();
|
||||||
|
|
||||||
async public Task<DataTable> ToDataTableAsync(string field = null)
|
async public Task<DataTable> ToDataTableAsync(string field = null)
|
||||||
{
|
{
|
||||||
@ -1284,10 +1284,10 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
}
|
}
|
||||||
protected Task<List<TReturn>> ToListMapReaderAsync<TReturn>((ReadAnonymousTypeInfo map, string field) af) => ToListMapReaderPrivateAsync<TReturn>(af, null);
|
protected Task<List<TReturn>> ToListMapReaderAsync<TReturn>((ReadAnonymousTypeInfo map, string field) af) => ToListMapReaderPrivateAsync<TReturn>(af, null);
|
||||||
|
|
||||||
async protected Task<TMember> InternalAvgAsync<TMember>(Expression exp) => (await this.ToListAsync<TMember>($"avg({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)})")).FirstOrDefault();
|
async protected Task<TMember> InternalAvgAsync<TMember>(Expression exp) => (await this.ToListAsync<TMember>($"avg({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)}) as1")).FirstOrDefault();
|
||||||
async protected Task<TMember> InternalMaxAsync<TMember>(Expression exp) => (await this.ToListAsync<TMember>($"max({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)})")).FirstOrDefault();
|
async protected Task<TMember> InternalMaxAsync<TMember>(Expression exp) => (await this.ToListAsync<TMember>($"max({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)}) as1")).FirstOrDefault();
|
||||||
async protected Task<TMember> InternalMinAsync<TMember>(Expression exp) => (await this.ToListAsync<TMember>($"min({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)})")).FirstOrDefault();
|
async protected Task<TMember> InternalMinAsync<TMember>(Expression exp) => (await this.ToListAsync<TMember>($"min({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)}) as1")).FirstOrDefault();
|
||||||
async protected Task<TMember> InternalSumAsync<TMember>(Expression exp) => (await this.ToListAsync<TMember>($"sum({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)})")).FirstOrDefault();
|
async protected Task<TMember> InternalSumAsync<TMember>(Expression exp) => (await this.ToListAsync<TMember>($"sum({_commonExpression.ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, true, null)}) as1")).FirstOrDefault();
|
||||||
|
|
||||||
protected Task<List<TReturn>> InternalToListAsync<TReturn>(Expression select) => this.ToListMapReaderAsync<TReturn>(this.GetExpressionField(select));
|
protected Task<List<TReturn>> InternalToListAsync<TReturn>(Expression select) => this.ToListMapReaderAsync<TReturn>(this.GetExpressionField(select));
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user