- 完善 $"{a.Code}_{a.Id}" lambda 解析,防止 null 相连;

This commit is contained in:
28810
2020-07-26 09:34:49 +08:00
parent 4a2d30298b
commit e80f179663
30 changed files with 55 additions and 51 deletions

View File

@ -59,7 +59,7 @@ namespace FreeSql.Tests.Odbc.DamengExpression
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
str2 = string.Format("{0}x{0}z-{1}{2}", a.Id + 1, a.CreateTime.ToString("yyyyMM"), a.Title)
});
Assert.Equal($@"SELECT 'x'||((a.""ID"" + 1))||'z-'||(to_char(a.""CREATETIME"",'YYYYMM'))||''||(a.""TITLE"")||'' as1, ''||((a.""ID"" + 1))||'x'||((a.""ID"" + 1))||'z-'||(to_char(a.""CREATETIME"",'YYYYMM'))||''||(a.""TITLE"")||'' as2
Assert.Equal($@"SELECT 'x'||nvl((a.""ID"" + 1), '')||'z-'||nvl(to_char(a.""CREATETIME"",'YYYYMM'), '')||''||nvl(a.""TITLE"", '')||'' as1, ''||nvl((a.""ID"" + 1), '')||'x'||nvl((a.""ID"" + 1), '')||'z-'||nvl(to_char(a.""CREATETIME"",'YYYYMM'), '')||''||nvl(a.""TITLE"", '')||'' as2
FROM ""TB_TOPIC"" a
WHERE (a.""ID"" = {item.Id})", sql);

View File

@ -59,7 +59,7 @@ namespace FreeSql.Tests.Odbc.KingbaseESExpression
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
str2 = string.Format("{0}x{0}z-{1}{2}", a.Id + 1, a.CreateTime.ToString("yyyyMM"), a.Title)
});
Assert.Equal($@"SELECT 'x'||((a.""ID"" + 1))||'z-'||(to_char((a.""CREATETIME"")::timestamp,'YYYYMM'))||''||(a.""TITLE"")||'' as1, ''||((a.""ID"" + 1))||'x'||((a.""ID"" + 1))||'z-'||(to_char((a.""CREATETIME"")::timestamp,'YYYYMM'))||''||(a.""TITLE"")||'' as2
Assert.Equal($@"SELECT 'x'||coalesce(((a.""ID"" + 1))::text, '')||'z-'||coalesce(to_char((a.""CREATETIME"")::timestamp,'YYYYMM'), '')||''||coalesce(a.""TITLE"", '')||'' as1, ''||coalesce(((a.""ID"" + 1))::text, '')||'x'||coalesce(((a.""ID"" + 1))::text, '')||'z-'||coalesce(to_char((a.""CREATETIME"")::timestamp,'YYYYMM'), '')||''||coalesce(a.""TITLE"", '')||'' as2
FROM ""TB_TOPIC"" a
WHERE (a.""ID"" = {item.Id})", sql);

View File

@ -61,7 +61,7 @@ namespace FreeSql.Tests.Odbc.MySqlExpression
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
str2 = string.Format("{0}x{0}z-{1}{2}", a.Id + 1, a.CreateTime.ToString("yyyyMM"), a.Title)
});
Assert.Equal($@"SELECT concat('x',(a.`Id` + 1),'z-',date_format(a.`CreateTime`,'%Y%m'),'',a.`Title`,'') as1, concat('',(a.`Id` + 1),'x',(a.`Id` + 1),'z-',date_format(a.`CreateTime`,'%Y%m'),'',a.`Title`,'') as2
Assert.Equal($@"SELECT concat('x',ifnull((a.`Id` + 1), ''),'z-',ifnull(date_format(a.`CreateTime`,'%Y%m'), ''),'',ifnull(a.`Title`, ''),'') as1, concat('',ifnull((a.`Id` + 1), ''),'x',ifnull((a.`Id` + 1), ''),'z-',ifnull(date_format(a.`CreateTime`,'%Y%m'), ''),'',ifnull(a.`Title`, ''),'') as2
FROM `tb_topic` a
WHERE (a.`Id` = {item.Id})", sql);

View File

@ -59,7 +59,7 @@ namespace FreeSql.Tests.Odbc.OracleExpression
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
str2 = string.Format("{0}x{0}z-{1}{2}", a.Id + 1, a.CreateTime.ToString("yyyyMM"), a.Title)
});
Assert.Equal($@"SELECT 'x'||((a.""ID"" + 1))||'z-'||(to_char(a.""CREATETIME"",'YYYYMM'))||''||(a.""TITLE"")||'' as1, ''||((a.""ID"" + 1))||'x'||((a.""ID"" + 1))||'z-'||(to_char(a.""CREATETIME"",'YYYYMM'))||''||(a.""TITLE"")||'' as2
Assert.Equal($@"SELECT 'x'||nvl((a.""ID"" + 1), '')||'z-'||nvl(to_char(a.""CREATETIME"",'YYYYMM'), '')||''||nvl(a.""TITLE"", '')||'' as1, ''||nvl((a.""ID"" + 1), '')||'x'||nvl((a.""ID"" + 1), '')||'z-'||nvl(to_char(a.""CREATETIME"",'YYYYMM'), '')||''||nvl(a.""TITLE"", '')||'' as2
FROM ""TB_TOPIC"" a
WHERE (a.""ID"" = {item.Id})", sql);

View File

@ -59,7 +59,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQLExpression
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
str2 = string.Format("{0}x{0}z-{1}{2}", a.Id + 1, a.CreateTime.ToString("yyyyMM"), a.Title)
});
Assert.Equal($@"SELECT 'x'||((a.""id"" + 1))||'z-'||(to_char((a.""createtime"")::timestamp,'YYYYMM'))||''||(a.""title"")||'' as1, ''||((a.""id"" + 1))||'x'||((a.""id"" + 1))||'z-'||(to_char((a.""createtime"")::timestamp,'YYYYMM'))||''||(a.""title"")||'' as2
Assert.Equal($@"SELECT 'x'||coalesce(((a.""id"" + 1))::text, '')||'z-'||coalesce(to_char((a.""createtime"")::timestamp,'YYYYMM'), '')||''||coalesce(a.""title"", '')||'' as1, ''||coalesce(((a.""id"" + 1))::text, '')||'x'||coalesce(((a.""id"" + 1))::text, '')||'z-'||coalesce(to_char((a.""createtime"")::timestamp,'YYYYMM'), '')||''||coalesce(a.""title"", '')||'' as2
FROM ""tb_topic"" a
WHERE (a.""id"" = {item.Id})", sql);

View File

@ -60,7 +60,7 @@ namespace FreeSql.Tests.Odbc.SqlServerExpression
str = $"x{a.Id + 1}z-{a.CreateTime.ToString("yyyyMM")}{a.Title}",
str2 = string.Format("{0}x{0}z-{1}{2}", a.Id + 1, a.CreateTime.ToString("yyyyMM"), a.Title)
});
Assert.Equal($@"SELECT N'x'+cast((a.[Id] + 1) as varchar)+N'z-'+(substring(convert(char(8), cast(a.[CreateTime] as datetime), 112), 1, 6))+N''+(a.[Title])+N'' as1, N''+cast((a.[Id] + 1) as varchar)+N'x'+cast((a.[Id] + 1) as varchar)+N'z-'+(substring(convert(char(8), cast(a.[CreateTime] as datetime), 112), 1, 6))+N''+(a.[Title])+N'' as2
Assert.Equal($@"SELECT N'x'+isnull(cast((a.[Id] + 1) as varchar), '')+N'z-'+isnull(substring(convert(char(8), cast(a.[CreateTime] as datetime), 112), 1, 6), '')+N''+isnull(a.[Title], '')+N'' as1, N''+isnull(cast((a.[Id] + 1) as varchar), '')+N'x'+isnull(cast((a.[Id] + 1) as varchar), '')+N'z-'+isnull(substring(convert(char(8), cast(a.[CreateTime] as datetime), 112), 1, 6), '')+N''+isnull(a.[Title], '')+N'' as2
FROM [tb_topic] a
WHERE (a.[Id] = {item.Id})", sql);