- 优化 string Contains 模糊查找 % 的情况;

This commit is contained in:
2881099
2022-06-29 21:59:46 +08:00
parent 81406ba37a
commit e10fb8ffe5
39 changed files with 447 additions and 131 deletions

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -57,7 +57,7 @@ namespace FreeSql.Tests.MySqlConnectorExpression
{
var fsql = g.mysql;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -98,7 +98,7 @@ namespace FreeSql.Tests.MySqlConnectorExpression
[Fact]
public void Format()
{
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -121,9 +121,9 @@ WHERE (a.`Id` = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -281,6 +281,17 @@ WHERE (a.`Id` = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -55,7 +55,7 @@ namespace FreeSql.Tests.Odbc.DamengExpression
{
var fsql = g.dameng;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -96,7 +96,7 @@ namespace FreeSql.Tests.Odbc.DamengExpression
[Fact]
public void Format()
{
var item = g.dameng.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.dameng.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -119,9 +119,9 @@ WHERE (a.""ID"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.dameng.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.dameng.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -279,6 +279,17 @@ WHERE (a.""ID"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -55,7 +55,7 @@ namespace FreeSql.Tests.Odbc.KingbaseESExpression
{
var fsql = g.kingbaseES;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -96,7 +96,7 @@ namespace FreeSql.Tests.Odbc.KingbaseESExpression
[Fact]
public void Format()
{
var item = g.kingbaseES.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.kingbaseES.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -119,9 +119,9 @@ WHERE (a.""ID"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.kingbaseES.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.kingbaseES.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -279,6 +279,17 @@ WHERE (a.""ID"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -57,7 +57,7 @@ namespace FreeSql.Tests.Odbc.MySqlExpression
{
var fsql = g.mysql;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -98,7 +98,7 @@ namespace FreeSql.Tests.Odbc.MySqlExpression
[Fact]
public void Format()
{
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -121,9 +121,9 @@ WHERE (a.`Id` = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -281,6 +281,17 @@ WHERE (a.`Id` = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -55,7 +55,7 @@ namespace FreeSql.Tests.Odbc.OracleExpression
{
var fsql = g.oracle;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -96,7 +96,7 @@ namespace FreeSql.Tests.Odbc.OracleExpression
[Fact]
public void Format()
{
var item = g.oracle.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.oracle.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -119,9 +119,9 @@ WHERE (a.""ID"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.oracle.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.oracle.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -279,6 +279,17 @@ WHERE (a.""ID"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -55,7 +55,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQLExpression
{
var fsql = g.pgsql;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -96,7 +96,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQLExpression
[Fact]
public void Format()
{
var item = g.pgsql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.pgsql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -119,9 +119,9 @@ WHERE (a.""id"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.pgsql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.pgsql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -279,6 +279,17 @@ WHERE (a.""id"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -56,7 +56,7 @@ namespace FreeSql.Tests.Odbc.SqlServerExpression
{
var fsql = g.sqlserver;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -97,7 +97,7 @@ namespace FreeSql.Tests.Odbc.SqlServerExpression
[Fact]
public void Format()
{
var item = g.sqlserver.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.sqlserver.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -120,9 +120,9 @@ WHERE (a.[Id] = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.sqlserver.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.sqlserver.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -190,6 +190,17 @@ WHERE (a.[Id] = {item.Id})", sql);
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title)).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1)).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name)).ToList());
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -55,7 +55,7 @@ namespace FreeSql.Tests.SqliteExpression
{
var fsql = g.sqlite;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -96,7 +96,7 @@ namespace FreeSql.Tests.SqliteExpression
[Fact]
public void Format()
{
var item = g.sqlite.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.sqlite.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -119,9 +119,9 @@ WHERE (a.""Id"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.sqlite.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.sqlite.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -279,6 +279,17 @@ WHERE (a.""Id"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -55,7 +55,7 @@ namespace FreeSql.Tests.DamengExpression
{
var fsql = g.dameng;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -96,7 +96,7 @@ namespace FreeSql.Tests.DamengExpression
[Fact]
public void Format()
{
var item = g.dameng.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.dameng.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -119,9 +119,9 @@ WHERE (a.""ID"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.dameng.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.dameng.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -279,6 +279,17 @@ WHERE (a.""ID"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -55,7 +55,7 @@ namespace FreeSql.Tests.FirebirdExpression
{
var fsql = g.firebird;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -96,7 +96,7 @@ namespace FreeSql.Tests.FirebirdExpression
[Fact]
public void Format()
{
var item = g.firebird.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.firebird.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -119,9 +119,9 @@ WHERE (a.""ID"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.firebird.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.firebird.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -279,6 +279,17 @@ WHERE (a.""ID"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -55,7 +55,7 @@ namespace FreeSql.Tests.KingbaseESExpression
{
var fsql = g.kingbaseES;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -96,7 +96,7 @@ namespace FreeSql.Tests.KingbaseESExpression
[Fact]
public void Format()
{
var item = g.kingbaseES.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.kingbaseES.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -119,9 +119,9 @@ WHERE (a.""ID"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.kingbaseES.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.kingbaseES.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -279,6 +279,17 @@ WHERE (a.""ID"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -260,6 +260,17 @@ WHERE (a.[Id] = {item.Id})", sql);
var ret = fsql.Select<Topic>().Where(a => a.Title.Contains(guid)).ToList();
Assert.NotEmpty(ret);
Assert.Equal($"Test{guid}Contains01", ret[0].Title);
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -57,7 +57,7 @@ namespace FreeSql.Tests.MySqlExpression
{
var fsql = g.mysql;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -98,7 +98,7 @@ namespace FreeSql.Tests.MySqlExpression
[Fact]
public void Format()
{
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -121,9 +121,9 @@ WHERE (a.`Id` = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.mysql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -281,6 +281,17 @@ WHERE (a.`Id` = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -55,7 +55,7 @@ namespace FreeSql.Tests.OracleExpression
{
var fsql = g.oracle;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -96,7 +96,7 @@ namespace FreeSql.Tests.OracleExpression
[Fact]
public void Format()
{
var item = g.oracle.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.oracle.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -119,9 +119,9 @@ WHERE (a.""ID"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.oracle.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.oracle.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -279,6 +279,17 @@ WHERE (a.""ID"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -55,7 +55,7 @@ namespace FreeSql.Tests.PostgreSQLExpression
{
var fsql = g.pgsql;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -99,7 +99,7 @@ namespace FreeSql.Tests.PostgreSQLExpression
[Fact]
public void Format()
{
var item = g.pgsql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.pgsql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -122,9 +122,9 @@ WHERE (a.""id"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.pgsql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.pgsql.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -282,6 +282,17 @@ WHERE (a.""id"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -66,7 +66,7 @@ namespace FreeSql.Tests.ShenTongExpression
[Fact]
public void Format()
{
var item = g.shentong.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.shentong.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -89,9 +89,9 @@ WHERE (a.""ID"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.shentong.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.shentong.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -249,6 +249,17 @@ WHERE (a.""ID"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using FreeSql.Tests.DataContext.SqlServer;
using Microsoft.EntityFrameworkCore.Internal;
using System;
@ -71,7 +71,7 @@ namespace FreeSql.Tests.SqlServerExpression
{
var fsql = g.sqlserver;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -133,7 +133,7 @@ namespace FreeSql.Tests.SqlServerExpression
{
w.Id,
w.UserName,
<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>ɫ = string.Join(",", repo.Orm
= string.Join(",", repo.Orm
.Select<StringJoin02UserRole, StringJoin02Role>()
.LeftJoin((b, c) => b.RoleId == c.Id)
.Where((b, c) => b.UserId == w.Id)
@ -142,18 +142,18 @@ namespace FreeSql.Tests.SqlServerExpression
Assert.Equal(2, result.Count);
Assert.Equal(users[0].Id, result[0].Id);
Assert.Equal("user01", result[0].UserName);
Assert.Equal("role01,role02,role03", result[0].<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>ɫ);
Assert.Equal("role01,role02,role03", result[0].);
Assert.Equal(users[1].Id, result[1].Id);
Assert.Equal("user02", result[1].UserName);
Assert.Equal("role01,role03", result[1].<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>ɫ);
Assert.Equal("role01,role03", result[1].);
result = repo.Select.ToList(w =>
new
{
w.Id,
w.UserName,
<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>ɫ = string.Join(",", repo.Orm
= string.Join(",", repo.Orm
.Select<StringJoin02UserRole, StringJoin02Role>()
.LeftJoin(b => b.t1.RoleId == b.t2.Id)
.Where(b => b.t1.UserId == w.Id)
@ -162,11 +162,11 @@ namespace FreeSql.Tests.SqlServerExpression
Assert.Equal(2, result.Count);
Assert.Equal(users[0].Id, result[0].Id);
Assert.Equal("user01", result[0].UserName);
Assert.Equal("role01,role02,role03", result[0].<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>ɫ);
Assert.Equal("role01,role02,role03", result[0].);
Assert.Equal(users[1].Id, result[1].Id);
Assert.Equal("user02", result[1].UserName);
Assert.Equal("role01,role03", result[1].<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>ɫ);
Assert.Equal("role01,role03", result[1].);
}
class StringJoin02User
{
@ -223,16 +223,16 @@ namespace FreeSql.Tests.SqlServerExpression
{
w.Id,
w.UserName,
<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>ɫ = string.Join(",", w.Roles.AsSelect().ToList(b => b.RoleName))
= string.Join(",", w.Roles.AsSelect().ToList(b => b.RoleName))
});
Assert.Equal(2, result.Count);
Assert.Equal(users[0].Id, result[0].Id);
Assert.Equal("user01", result[0].UserName);
Assert.Equal("role01,role02,role03", result[0].<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>ɫ);
Assert.Equal("role01,role02,role03", result[0].);
Assert.Equal(users[1].Id, result[1].Id);
Assert.Equal("user02", result[1].UserName);
Assert.Equal("role01,role03", result[1].<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>ɫ);
Assert.Equal("role01,role03", result[1].);
}
class StringJoin03User
{
@ -276,7 +276,7 @@ namespace FreeSql.Tests.SqlServerExpression
[Fact]
public void Format()
{
var item = g.sqlserver.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.sqlserver.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -299,9 +299,9 @@ WHERE (a.[Id] = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.sqlserver.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.sqlserver.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -400,6 +400,27 @@ WHERE (a.[Id] = {item.Id})", sql);
list.Add(select.Where(a => (a.TitleVarchar + "aaa").Contains(a.TitleVarchar)).ToList());
list.Add(select.Where(a => (a.TitleVarchar + "aaa").Contains(a.TitleVarchar + 1)).ToList());
list.Add(select.Where(a => (a.TitleVarchar + "aaa").Contains(a.Type.Name)).ToList());
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => a.TitleVarchar.Contains("aaa%")).ToList());
list.Add(select.Where(a => a.TitleVarchar.Contains(a.TitleVarchar + "%")).ToList());
list.Add(select.Where(a => a.TitleVarchar.Contains(a.TitleVarchar + 1 + "%")).ToList());
list.Add(select.Where(a => a.TitleVarchar.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.TitleVarchar + "aaa").Contains("aaa%")).ToList());
list.Add(select.Where(a => (a.TitleVarchar + "aaa").Contains(a.TitleVarchar + "%")).ToList());
list.Add(select.Where(a => (a.TitleVarchar + "aaa").Contains(a.TitleVarchar + 1 + "%")).ToList());
list.Add(select.Where(a => (a.TitleVarchar + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()

View File

@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@ -55,7 +55,7 @@ namespace FreeSql.Tests.SqliteExpression
{
var fsql = g.sqlite;
fsql.Delete<StringJoin01>().Where("1=1").ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, new StringJoin01 { name = "<EFBFBD>Ϻ<EFBFBD>" }, new StringJoin01 { name = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" }, }).ExecuteAffrows();
fsql.Insert(new[] { new StringJoin01 { name = "北京" }, new StringJoin01 { name = "上海" }, new StringJoin01 { name = "深圳" }, }).ExecuteAffrows();
var val1 = string.Join(",", fsql.Select<StringJoin01>().ToList(a => a.name));
var val2 = fsql.Select<StringJoin01>().ToList(a => string.Join(",", fsql.Select<StringJoin01>().As("b").ToList(b => b.name)));
@ -96,7 +96,7 @@ namespace FreeSql.Tests.SqliteExpression
[Fact]
public void Format()
{
var item = g.sqlite.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
var item = g.sqlite.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
@ -119,9 +119,9 @@ WHERE (a.""Id"" = {item.Id})", sql);
[Fact]
public void Format4()
{
//3<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿֿ<EFBFBD><EFBFBD><EFBFBD>
//4<EFBFBD><EFBFBD> {} ʱ<EFBFBD><EFBFBD>Arguments[1] ֻ<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NewArray []
var item = g.sqlite.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>101", CreateTime = DateTime.Parse("2020-7-5") });
//3 {} 时,Arguments 解析出来是分开的
//4 {} 时,Arguments[1] 只能解析这个出来,然后里面是 NewArray []
var item = g.sqlite.GetRepository<Topic>().Insert(new Topic { Clicks = 101, Title = "我是中国人101", CreateTime = DateTime.Parse("2020-7-5") });
var sql = select.WhereDynamic(item).ToSql(a => new
{
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}{a.Title}",
@ -279,6 +279,17 @@ WHERE (a.""Id"" = {item.Id})", sql);
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8
//FROM `tb_topic` a, `TestTypeInfo` a__Type
//WHERE((concat(a.`Title`, 'aaa')) LIKE concat('%', a__Type.`Name`, '%'))
list.Add(select.Where(a => a.Title.Contains("%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => a.Title.Contains(a.Type.Name + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains("aaa" + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Title + 1 + "%")).ToList());
list.Add(select.Where(a => (a.Title + "aaa").Contains(a.Type.Name + "%")).ToList());
}
[Fact]
public void ToLower()