- 增加 Where In 表达式解析;

- 增加 FreeSqlBuilder.UseConnectionFactory 自定义数据库连接对象的创建方法;
This commit is contained in:
28810
2019-12-17 01:39:53 +08:00
parent 51494c31a2
commit e1e3e4a3b2
57 changed files with 1018 additions and 492 deletions

View File

@ -758,12 +758,16 @@ namespace FreeSql.Tests.Odbc.Oracle
var subquery = select.ToSql(a => new
{
all = a,
count = 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_TOPIC22"" b
WHERE ROWNUM < 2) as6
FROM ""TB_TOPIC22"" a", subquery);
var subqueryList = select.ToList(a => new
{
all = a,
count = select.Sum(b => b.Id)
count = (long)select.As("b").Sum(b => b.Id)
});
}
[Fact]
@ -772,12 +776,16 @@ namespace FreeSql.Tests.Odbc.Oracle
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_TOPIC22"" b
WHERE ROWNUM < 2) as6
FROM ""TB_TOPIC22"" 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]
@ -786,12 +794,16 @@ namespace FreeSql.Tests.Odbc.Oracle
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_TOPIC22"" b
WHERE ROWNUM < 2) as6
FROM ""TB_TOPIC22"" 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]
@ -800,15 +812,29 @@ namespace FreeSql.Tests.Odbc.Oracle
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_TOPIC22"" b
WHERE ROWNUM < 2) as6
FROM ""TB_TOPIC22"" 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_TOPIC22"" a
WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
FROM ""TB_TOPIC22"" b)))", subquery);
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
}
[Fact]
public void As()
{
}