mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-18 20:08:15 +08:00
- 增加 Where In 表达式解析;
- 增加 FreeSqlBuilder.UseConnectionFactory 自定义数据库连接对象的创建方法;
This commit is contained in:
@ -815,12 +815,16 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = (long)select.Sum(b => b.Id)
|
||||
count = (long)select.As("b").Sum(b => b.Id)
|
||||
});
|
||||
Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT sum(b.""id"")
|
||||
FROM ""tb_topic"" b
|
||||
limit 1) as6
|
||||
FROM ""tb_topic"" a", subquery);
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = (long)select.Sum(b => b.Id)
|
||||
count = (long)select.As("b").Sum(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
@ -829,12 +833,16 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
count = select.As("b").Min(b => b.Id)
|
||||
});
|
||||
Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT min(b.""id"")
|
||||
FROM ""tb_topic"" b
|
||||
limit 1) as6
|
||||
FROM ""tb_topic"" a", subquery);
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
count = select.As("b").Min(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
@ -843,12 +851,16 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
count = select.As("b").Max(b => b.Id)
|
||||
});
|
||||
Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT max(b.""id"")
|
||||
FROM ""tb_topic"" b
|
||||
limit 1) as6
|
||||
FROM ""tb_topic"" a", subquery);
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
count = select.As("b").Max(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
@ -857,15 +869,29 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
count = select.As("b").Avg(b => b.Id)
|
||||
});
|
||||
Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT avg(b.""id"")
|
||||
FROM ""tb_topic"" b
|
||||
limit 1) as6
|
||||
FROM ""tb_topic"" a", subquery);
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
count = select.As("b").Avg(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void WhereIn()
|
||||
{
|
||||
var subquery = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToSql();
|
||||
Assert.Equal(@"SELECT a.""id"", a.""clicks"", a.""typeguid"", a.""title"", a.""createtime""
|
||||
FROM ""tb_topic"" a
|
||||
WHERE ((((a.""id"")::varchar) in (SELECT b.""title""
|
||||
FROM ""tb_topic"" b)))", subquery);
|
||||
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||
}
|
||||
[Fact]
|
||||
public void As()
|
||||
{
|
||||
}
|
||||
|
Reference in New Issue
Block a user