2017-01-28 21:56:15 +08:00
using OrmTest.Models ;
using SqlSugar ;
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Linq.Expressions ;
using System.Text ;
using System.Threading.Tasks ;
2017-03-04 15:07:58 +08:00
namespace OrmTest.UnitTest
2017-01-28 21:56:15 +08:00
{
2017-05-16 13:55:57 +08:00
public class Method : UnitTestBase
2017-01-28 21:56:15 +08:00
{
private Method ( ) { }
public Method ( int eachCount )
{
this . Count = eachCount ;
}
internal void Init ( )
{
base . Begin ( ) ;
for ( int i = 0 ; i < base . Count ; i + + )
{
2017-06-14 00:20:41 +08:00
//Native methods
2017-06-14 01:08:12 +08:00
ExtendContainsArray ( ) ;
2017-06-14 00:20:41 +08:00
ConvetToString ( ) ;
ExtendToString ( ) ;
ExtendSubstring ( ) ;
2017-06-14 01:00:16 +08:00
ExtendDate ( ) ;
2017-06-14 00:20:41 +08:00
//SqlFun methods
2017-07-04 00:06:50 +08:00
MappingColumn ( ) ;
2017-06-12 17:47:25 +08:00
IIF ( ) ;
IIF2 ( ) ;
2017-08-13 21:34:29 +08:00
IIF3 ( ) ;
IIF4 ( ) ;
2017-08-14 00:39:25 +08:00
IIF5 ( ) ;
2017-01-30 18:53:06 +08:00
#region StringIsNullOrEmpty
2017-06-04 09:27:41 +08:00
HasValue ( ) ;
HasNumber ( ) ;
2017-01-30 15:10:54 +08:00
StringIsNullOrEmpty ( ) ;
2017-01-30 15:41:16 +08:00
StringIsNullOrEmpty2 ( ) ;
2017-01-30 16:42:33 +08:00
StringIsNullOrEmpty3 ( ) ;
2017-01-30 18:17:55 +08:00
StringIsNullOrEmpty4 ( ) ;
2017-06-04 08:13:18 +08:00
StringIsNullOrEmpty5 ( ) ;
2017-04-30 19:57:29 +08:00
#endregion
2017-01-30 18:53:06 +08:00
ToUpper ( ) ;
2017-01-30 21:54:23 +08:00
ToLower ( ) ;
2017-01-30 22:05:08 +08:00
Trim ( ) ;
2017-01-31 20:39:57 +08:00
Contains ( ) ;
2017-06-15 07:43:58 +08:00
Contains2 ( ) ;
2017-07-03 13:04:34 +08:00
Contains3 ( ) ;
2017-04-30 14:31:07 +08:00
ContainsArray ( ) ;
2017-04-29 23:20:31 +08:00
StartsWith ( ) ;
EndsWith ( ) ;
2017-04-29 22:51:41 +08:00
Between ( ) ;
Equals ( ) ;
Equals_2 ( ) ;
DateIsSameByDay ( ) ;
DateIsSameByType ( ) ;
DateAddDay ( ) ;
DateAddByType ( ) ;
2017-04-29 23:37:49 +08:00
DateValue ( ) ;
2017-04-30 13:04:06 +08:00
ToInt32 ( ) ;
ToInt64 ( ) ;
ToDate ( ) ;
Tostring ( ) ;
ToDecimal ( ) ;
ToGuid ( ) ;
ToDouble ( ) ;
ToBool ( ) ;
Substring ( ) ;
Replace ( ) ;
Length ( ) ;
2017-07-08 02:02:58 +08:00
Time ( ) ;
2017-09-03 01:46:56 +08:00
Test1 ( ) ;
2017-01-28 21:56:15 +08:00
}
base . End ( "Method Test" ) ;
}
2017-01-31 20:39:57 +08:00
2017-09-03 01:46:56 +08:00
private void Test1 ( )
{
var ids = new int [ ] { 1 , 2 , 3 } ;
Expression < Func < Student , bool > > exp = it = > ids . Contains ( it . Id ) & & ! SqlFunc . IsNullOrEmpty ( it . Name ) ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(([Id] IN ('1','2','3')) AND NOT( [Name]='' OR [Name] IS NULL ))" , new List < SugarParameter > ( ) {
} , "Test1 error" ) ;
}
2017-06-14 00:20:41 +08:00
private void ExtendToString ( )
{
Expression < Func < Student , bool > > exp = it = > it . Id . ToString ( ) = = "a" ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST([Id] AS NVARCHAR(MAX)) = @Const0 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@Const0" , "a" )
2017-06-14 00:23:34 +08:00
} , "ExtendToString error" ) ;
2017-06-14 00:20:41 +08:00
}
private void ConvetToString ( )
{
Expression < Func < Student , bool > > exp = it = > Convert . ToString ( it . Id ) = = "a" ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST([Id] AS NVARCHAR(MAX)) = @Const0 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@Const0" , "a" )
2017-06-14 00:23:34 +08:00
} , "ConvetToString error" ) ;
2017-06-14 00:20:41 +08:00
}
2017-04-30 13:04:06 +08:00
private void Length ( )
{
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Length ( "aaaa" ) > 1 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(LEN(@MethodConst0) > @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "aaaa" ) , new SugarParameter ( "@Const1" , 1 )
2017-05-28 19:45:37 +08:00
} , "Length error" ) ;
2017-07-27 15:03:03 +08:00
Length2 ( ) ;
Length3 ( ) ;
}
private void Length2 ( )
{
Expression < Func < Student , bool > > exp = it = > it . Name . Length > 1 ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(LEN([Name])> @Length1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@Length1" , 1 )
} , "Length2 error" ) ;
2017-04-30 13:04:06 +08:00
}
2017-07-27 15:03:03 +08:00
private void Length3 ( )
{
Expression < Func < Student , bool > > exp = it = > it . Name . Length > "a" . Length ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(LEN([Name])> @Length1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@Length1" , 1 )
} , "Length3 error" ) ;
}
2017-07-08 02:02:58 +08:00
private void Time ( )
{
TimeSpan s = TimeSpan . Parse ( "11:22:22" ) ;
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToTime ( "11:12:59" ) = = s ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS TIME) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "11:12:59" ) , new SugarParameter ( "@Const1" , s )
} , "Time error" ) ;
}
2017-04-30 13:04:06 +08:00
private void Replace ( )
{
var x2 = Guid . NewGuid ( ) ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Replace ( "aaaa" , "a" , "1" ) = = "a" ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(REPLACE(@MethodConst0,@MethodConst1,@MethodConst2) = @Const3 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "aaaa" ) , new SugarParameter ( "@MethodConst1" , "a" ) , new SugarParameter ( "@MethodConst2" , "1" ) , new SugarParameter ( "@Const3" , "a" )
2017-05-28 19:45:37 +08:00
} , "Replace error" ) ;
2017-04-30 13:04:06 +08:00
}
private void Substring ( )
{
var x2 = Guid . NewGuid ( ) ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Substring ( "aaaa" , 0 , 2 ) = = "a" ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(SUBSTRING(@MethodConst0,1 + @MethodConst1,@MethodConst2) = @Const3 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "aaaa" ) , new SugarParameter ( "@MethodConst1" , 0 ) , new SugarParameter ( "@MethodConst2" , 2 ) , new SugarParameter ( "@Const3" , "a" )
2017-05-28 19:45:37 +08:00
} , "Substring error" ) ;
2017-04-30 13:04:06 +08:00
}
2017-06-14 00:20:41 +08:00
private void ExtendSubstring ( )
{
var x2 = Guid . NewGuid ( ) ;
Expression < Func < Student , bool > > exp = it = > "aaaa" . Substring ( 0 , 2 ) = = "a" ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(SUBSTRING(@MethodConst0,1 + @MethodConst1,@MethodConst2) = @Const3 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "aaaa" ) , new SugarParameter ( "@MethodConst1" , 0 ) , new SugarParameter ( "@MethodConst2" , 2 ) , new SugarParameter ( "@Const3" , "a" )
} , "Substring error" ) ;
}
2017-04-30 13:04:06 +08:00
private void ToBool ( )
{
var x2 = Guid . NewGuid ( ) ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToBool ( "true" ) = = true ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS BIT) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "true" ) , new SugarParameter ( "@Const1" , ( bool ) true )
2017-05-28 19:45:37 +08:00
} , "ToBool error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToDouble ( )
{
var x2 = Guid . NewGuid ( ) ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToDouble ( "2" ) = = 2 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS FLOAT) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "2" ) , new SugarParameter ( "@Const1" , ( Double ) 2 )
2017-05-28 19:45:37 +08:00
} , "ToDouble error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToGuid ( )
{
var x2 = Guid . NewGuid ( ) ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToGuid ( "A94027A3-476E-478D-8228-F4054394B874" ) = = x2 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS UNIQUEIDENTIFIER) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "A94027A3-476E-478D-8228-F4054394B874" ) , new SugarParameter ( "@Const1" , x2 )
2017-05-28 19:45:37 +08:00
} , "ToGuid error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToDecimal ( )
{
var x2 = DateTime . Now ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToDecimal ( "22" ) = = 1 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS MONEY) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "22" ) , new SugarParameter ( "@Const1" , ( decimal ) 1 )
2017-05-28 19:45:37 +08:00
} , "ToDecimal error" ) ;
2017-04-30 13:04:06 +08:00
}
private void Tostring ( )
{
var x2 = DateTime . Now ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToString ( "2015-1-1" ) = = "a" ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS NVARCHAR(MAX)) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "2015-1-1" ) , new SugarParameter ( "@Const1" , "a" )
2017-05-28 19:45:37 +08:00
} , "Tostring error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToDate ( )
{
var x2 = DateTime . Now ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToDate ( "2015-1-1" ) = = x2 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS DATETIME) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "2015-1-1" ) , new SugarParameter ( "@Const1" , x2 )
2017-05-28 19:45:37 +08:00
} , "ToDate error" ) ;
2017-04-30 13:04:06 +08:00
}
2017-06-14 01:00:16 +08:00
private void ExtendDate ( )
{
var x2 = DateTime . Now ;
Expression < Func < Student , bool > > exp = it = > Convert . ToDateTime ( "2015-1-1" ) = = x2 ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS DATETIME) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "2015-1-1" ) , new SugarParameter ( "@Const1" , x2 )
} , "ExtendDate error" ) ;
}
2017-04-30 13:04:06 +08:00
private void ToInt64 ( )
{
var x2 = DateTime . Now ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToInt64 ( "3" ) = = 1 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS BIGINT) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "3" ) , new SugarParameter ( "@Const1" , ( Int64 ) 1 )
2017-05-28 19:45:37 +08:00
} , "ToInt64 error" ) ;
2017-04-30 13:04:06 +08:00
}
private void ToInt32 ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ToInt32 ( "3" ) = = 1 ;
2017-04-30 13:04:06 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(CAST(@MethodConst0 AS INT) = @Const1 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "3" ) , new SugarParameter ( "@Const1" , 1 )
2017-05-28 19:45:37 +08:00
} , "ToInt32 error" ) ;
2017-04-30 13:04:06 +08:00
}
2017-04-29 23:37:49 +08:00
private void DateValue ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . DateValue ( x2 , DateType . Year ) = = 1 ;
2017-04-29 23:37:49 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-08-13 01:33:05 +08:00
base . Check ( value , pars , " (DateName(Year,@MethodConst0) = @Const2 ) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , x2 ) , new SugarParameter ( "@Const2" , 1 )
2017-05-28 19:45:37 +08:00
} , "DateValue error" ) ;
2017-04-29 23:37:49 +08:00
}
2017-04-29 23:20:31 +08:00
private void StartsWith ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . StartsWith ( it . Name , "a" ) ;
2017-04-29 23:20:31 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " ([Name] like @MethodConst0+'%') " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" )
2017-05-28 19:45:37 +08:00
} , "StartsWith error" ) ;
2017-04-29 23:20:31 +08:00
}
private void EndsWith ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . EndsWith ( it . Name , "a" ) ;
2017-04-29 23:20:31 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " ([Name] like '%'+@MethodConst0) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" )
} , "EndsWith" ) ;
}
2017-04-29 22:51:41 +08:00
private void Between ( )
{
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Between ( it . Name , 1 , 2 ) ;
2017-04-29 23:08:14 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " ([Name] BETWEEN @MethodConst0 AND @MethodConst1) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , 1 ) , new SugarParameter ( "@MethodConst1" , 2 ) ,
2017-05-28 19:45:37 +08:00
} , "Between error" ) ;
2017-04-29 22:51:41 +08:00
}
private void DateAddByType ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . DateAdd ( x2 , 11 , DateType . Millisecond ) = = x2 ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-08-13 00:49:08 +08:00
base . Check ( value , pars , "((DATEADD(Millisecond,@MethodConst1,@MethodConst0)) = @Const3 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , x2 ) , new SugarParameter ( "@MethodConst1" , 11 ) , new SugarParameter ( "@Const3" , x2 )
2017-05-28 19:45:37 +08:00
} , "DateAddByType error" ) ;
2017-04-29 22:51:41 +08:00
}
private void DateAddDay ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . DateAdd ( x2 , 1 ) = = x2 ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-30 11:09:27 +08:00
base . Check ( value , pars , "((DATEADD(day,@MethodConst1,@MethodConst0)) = @Const2 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , x2 ) , new SugarParameter ( "@MethodConst1" , 1 ) , new SugarParameter ( "@Const2" , x2 )
2017-07-16 04:35:42 +08:00
} , "DateAddDay error" ) ;
DateAddDay2 ( ) ;
DateAddDay3 ( ) ;
}
private void DateAddDay2 ( )
{
var x2 = DateTime . Now ;
Expression < Func < DataTestInfo , bool > > exp = it = > it . Datetime2 . Value . AddHours ( 10 ) = = x2 ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-08-13 00:49:08 +08:00
base . Check ( value , pars , "((DATEADD(Hour,@MethodConst1,[Datetime2])) = @Const2 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst1" , 10 )
2017-07-16 04:35:42 +08:00
, new SugarParameter ( "@Const2" , x2 )
} , "DateAddDay2 error" ) ;
}
private void DateAddDay3 ( )
{
var x2 = DateTime . Now ;
Expression < Func < Student , bool > > exp = it = > x2 . AddHours ( 1 ) = = x2 ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-08-13 00:49:08 +08:00
base . Check ( value , pars , "((DATEADD(Hour,@MethodConst2,@MethodConst1)) = @Const3 )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst2" , 1 ) ,
new SugarParameter ( "@MethodConst1" , x2 )
2017-07-16 04:35:42 +08:00
, new SugarParameter ( "@Const3" , x2 )
} , "DateAddDay3 error" ) ;
2017-04-29 22:51:41 +08:00
}
private void DateIsSameByType ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . DateIsSame ( x2 , x2 , DateType . Millisecond ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-08-13 00:49:08 +08:00
base . Check ( value , pars , " (DATEDIFF(Millisecond,@MethodConst0,@MethodConst1)=0) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , x2 ) , new SugarParameter ( "@MethodConst1" , x2 )
2017-05-28 19:45:37 +08:00
} , "DateIsSameByType error" ) ;
2017-04-29 22:51:41 +08:00
}
private void DateIsSameByDay ( )
{
var x2 = DateTime . Now ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . DateIsSame ( x2 , x2 ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(DATEDIFF(day,@MethodConst0,@MethodConst1)=0) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , x2 ) , new SugarParameter ( "@MethodConst1" , x2 )
2017-05-28 19:45:37 +08:00
} , "DateIsSameDay error" ) ;
2017-04-29 22:51:41 +08:00
}
private void Equals ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Equals ( it . Name , "a" ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " ([Name] = @MethodConst0) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" )
2017-05-28 19:45:37 +08:00
} , "Equals1 error" ) ;
2017-04-29 22:51:41 +08:00
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp2 = it = > SqlFunc . Equals ( "a" , it . Name ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext2 = new SqlServerExpressionContext ( ) ;
expContext2 . Resolve ( exp2 , ResolveExpressType . WhereSingle ) ;
var value2 = expContext2 . Result . GetString ( ) ;
var pars2 = expContext2 . Parameters ;
base . Check ( value2 , pars2 , " (@MethodConst0 = [Name]) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" )
2017-05-28 19:45:37 +08:00
} , "Equals2 error" ) ;
2017-04-29 22:51:41 +08:00
}
private void Equals_2 ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Equals ( it . Name , it . Name ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " ([Name] = [Name]) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" )
2017-05-28 19:45:37 +08:00
} , "Equals1 error" ) ;
2017-04-29 22:51:41 +08:00
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp2 = it = > SqlFunc . Equals ( "a" , "a2" ) ;
2017-04-29 22:51:41 +08:00
SqlServerExpressionContext expContext2 = new SqlServerExpressionContext ( ) ;
expContext2 . Resolve ( exp2 , ResolveExpressType . WhereSingle ) ;
var value2 = expContext2 . Result . GetString ( ) ;
var pars2 = expContext2 . Parameters ;
base . Check ( value2 , pars2 , " (@MethodConst0 = @MethodConst1) " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" ) , new SugarParameter ( "@MethodConst1" , "a2" )
2017-05-28 19:45:37 +08:00
} , "Equals2 error" ) ;
2017-04-29 22:51:41 +08:00
}
2017-01-31 20:39:57 +08:00
private void Contains ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Contains ( it . Name , "a" ) ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-31 20:39:57 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-03-13 10:55:22 +08:00
base . Check ( value , pars , " ([Name] like '%'+@MethodConst0+'%') " , new List < SugarParameter > ( ) {
2017-01-31 21:23:01 +08:00
new SugarParameter ( "@MethodConst0" , "a" )
2017-05-28 19:45:37 +08:00
} , "Contains error" ) ;
2017-01-31 20:39:57 +08:00
}
2017-06-15 07:43:58 +08:00
private void Contains2 ( string name = "a" )
{
Expression < Func < Student , bool > > exp = it = > SqlFunc . Contains ( it . Name , name ) ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , " ([Name] like '%'+@MethodConst0+'%') " , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" )
} , "Contains2 error" ) ;
}
2017-07-03 13:04:34 +08:00
private void Contains3 ( string name = "a" )
{
Expression < Func < Student , bool > > exp = it = > ! SqlFunc . Contains ( it . Name , name ) & & it . Id = = 1 ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(NOT ([Name] like '%'+@MethodConst0+'%') AND( [Id] = @Id1 ))" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "a" ) ,
new SugarParameter ( "@Id1" , 1 )
} , "Contains3 error" ) ;
}
2017-01-31 20:39:57 +08:00
2017-06-14 01:08:12 +08:00
private void ExtendContainsArray ( ) {
2017-06-15 10:08:08 +08:00
var array = new string [ ] { "1" , "2" } . ToList ( ) ;
2017-06-14 01:08:12 +08:00
Expression < Func < Student , bool > > exp = it = > array . Contains ( it . Name ) ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , null , " ([Name] IN ('1','2')) " , null , "Contains2 error" ) ;
}
2017-04-30 14:31:07 +08:00
private void ContainsArray ( )
{
2017-06-12 17:47:25 +08:00
string [ ] array = new string [ ] { "1" , "2" } ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . ContainsArray ( array , it . Name ) ;
2017-04-30 14:31:07 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-06-12 17:47:25 +08:00
base . Check ( value , null , " ([Name] IN ('1','2')) " , null , "Contains2 error" ) ;
2017-04-30 14:31:07 +08:00
}
2017-01-30 22:05:08 +08:00
private void Trim ( )
{
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . Trim ( " a" ) = = it . Name ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 22:05:08 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "((rtrim(ltrim(@MethodConst0))) = [Name] )" , new List < SugarParameter > ( ) {
2017-01-31 20:26:38 +08:00
new SugarParameter ( "@MethodConst0" , " a" )
2017-05-28 19:45:37 +08:00
} , "Trim error" ) ;
2017-01-30 22:05:08 +08:00
}
2017-01-30 18:53:06 +08:00
private void ToUpper ( )
2017-01-30 15:10:54 +08:00
{
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > "a" = = SqlFunc . ToUpper ( it . Id ) ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 15:10:54 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "( @Const0 = (UPPER([Id])) )" , new List < SugarParameter > ( ) {
2017-01-30 21:54:23 +08:00
new SugarParameter ( "@Const0" , "a" )
2017-05-28 19:45:37 +08:00
} , "ToUpper error" ) ;
2017-01-30 15:41:16 +08:00
}
2017-01-30 21:54:23 +08:00
private void ToLower ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > "a" = = SqlFunc . ToLower ( it . Id ) ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 21:54:23 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "( @Const0 = (LOWER([Id])) )" , new List < SugarParameter > ( ) {
2017-01-30 21:54:23 +08:00
new SugarParameter ( "@Const0" , "a" )
2017-05-28 19:45:37 +08:00
} , "ToLower error" ) ;
2017-01-30 21:54:23 +08:00
}
2017-01-30 15:41:16 +08:00
2017-01-30 18:53:06 +08:00
#region StringIsNullOrEmpty
private void StringIsNullOrEmpty ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > it . Id > 2 | | SqlFunc . IsNullOrEmpty ( it . Id ) ; ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 18:53:06 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "(( [Id] > @Id0 ) OR ( [Id]='' OR [Id] IS NULL ))" , new List < SugarParameter > ( ) {
2017-01-30 18:53:06 +08:00
new SugarParameter ( "@Id0" , 2 )
2017-05-28 19:45:37 +08:00
} , "StringIsNullOrEmpty error" ) ;
2017-01-30 18:53:06 +08:00
}
2017-01-30 15:41:16 +08:00
private void StringIsNullOrEmpty2 ( )
{
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > 2 = = it . Id | | SqlFunc . IsNullOrEmpty ( true ) ; ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 15:41:16 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))" , new List < SugarParameter > ( ) {
2017-01-30 21:54:23 +08:00
new SugarParameter ( "@MethodConst1" , true ) ,
2017-01-30 15:41:16 +08:00
new SugarParameter ( "@Id0" , 2 )
2017-05-28 19:45:37 +08:00
} , "StringIsNullOrEmpty2 error" ) ;
2017-01-30 15:10:54 +08:00
}
2017-01-30 16:42:33 +08:00
private void StringIsNullOrEmpty3 ( )
{
int a = 1 ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > 2 = = it . Id | | SqlFunc . IsNullOrEmpty ( a ) ; ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 16:42:33 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))" , new List < SugarParameter > ( ) {
2017-01-30 21:54:23 +08:00
new SugarParameter ( "@MethodConst1" , 1 ) ,
2017-01-30 16:42:33 +08:00
new SugarParameter ( "@Id0" , 2 )
2017-05-28 19:45:37 +08:00
} , "StringIsNullOrEmpty3 error" ) ;
2017-01-30 16:42:33 +08:00
}
2017-01-30 18:17:55 +08:00
private void StringIsNullOrEmpty4 ( )
{
WhereConst . name = "xx" ;
2017-05-31 15:42:21 +08:00
Expression < Func < Student , bool > > exp = it = > 2 = = it . Id | | SqlFunc . IsNullOrEmpty ( WhereConst . name ) ; ;
2017-02-26 23:56:28 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
2017-01-30 18:17:55 +08:00
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-04-29 21:17:57 +08:00
base . Check ( value , pars , "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))" , new List < SugarParameter > ( ) {
2017-01-30 21:54:23 +08:00
new SugarParameter ( "@MethodConst1" , "xx" ) ,
2017-01-30 18:17:55 +08:00
new SugarParameter ( "@Id0" , 2 )
2017-05-28 19:45:37 +08:00
} , "StringIsNullOrEmpty4 error" ) ;
2017-06-04 08:13:18 +08:00
}
private void StringIsNullOrEmpty5 ( )
{
WhereConst . name = "xx" ;
2017-06-12 17:47:25 +08:00
Expression < Func < Student , bool > > exp = it = > ! SqlFunc . IsNullOrEmpty ( WhereConst . name ) ; ;
2017-06-04 08:13:18 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "NOT( @MethodConst0='' OR @MethodConst0 IS NULL )" , new List < SugarParameter > ( ) {
new SugarParameter ( "@MethodConst0" , "xx" )
} , "StringIsNullOrEmpty5 error" ) ;
}
2017-01-30 18:53:06 +08:00
#endregion
2017-06-04 09:27:41 +08:00
private void HasValue ( )
{
Expression < Func < Student , bool > > exp = it = > SqlFunc . HasValue ( it . Name ) ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-06-12 17:47:25 +08:00
base . Check ( value , pars , "( [Name]<>'' AND [Name] IS NOT NULL )" , new List < SugarParameter > ( )
{
2017-06-04 09:27:41 +08:00
} , "HasValue error" ) ;
2017-08-21 10:13:38 +08:00
HasValue2 ( 1 ) ;
}
private void HasValue2 ( int p = 1 )
{
Expression < Func < Student , bool > > exp = it = > it . CreateTime . HasValue ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . IsSingle = false ;
expContext . Resolve ( exp , ResolveExpressType . WhereMultiple ) ;
var selectorValue = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check (
@"( [it].[CreateTime]<>'' AND [it].[CreateTime] IS NOT NULL )" , null , selectorValue , null ,
"Select.HasValue2 Error" ) ;
2017-06-04 09:27:41 +08:00
}
private void HasNumber ( )
{
Expression < Func < Student , bool > > exp = it = > SqlFunc . HasNumber ( it . Id ) ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-06-12 17:47:25 +08:00
base . Check ( value , pars , "( [Id]>0 AND [Id] IS NOT NULL )" , new List < SugarParameter > ( )
{
2017-06-04 09:27:41 +08:00
} , "HasNumber error" ) ;
}
2017-07-04 00:06:50 +08:00
private void MappingColumn ( ) {
Expression < Func < Student , bool > > exp = it = > SqlFunc . MappingColumn ( it . Id , "Name" ) = = 1 ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(Name = @Const1 )" , new List < SugarParameter > ( )
{
new SugarParameter ( "@Const1" , 1 )
} , "MappingColumn error" ) ;
}
2017-06-12 17:47:25 +08:00
private void IIF ( )
{
2017-06-12 18:19:18 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . IIF ( it . Id = = 1 , 1 , 2 ) = = 1 ;
2017-06-12 17:47:25 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-06-12 23:34:43 +08:00
base . Check ( value , pars , "(( CASE WHEN ( [Id] = @Id0 ) THEN @MethodConst1 ELSE @MethodConst2 END ) = @Const3 )" , new List < SugarParameter > ( )
2017-06-12 17:47:25 +08:00
{
2017-06-12 23:34:43 +08:00
new SugarParameter ( "@Id0" , 1 ) ,
new SugarParameter ( "@MethodConst1" , 1 ) ,
new SugarParameter ( "@MethodConst2" , 2 ) ,
new SugarParameter ( "@Const3" , 1 )
2017-06-12 17:47:25 +08:00
} , "IIF error" ) ;
}
private void IIF2 ( )
{
2017-06-12 18:19:18 +08:00
Expression < Func < Student , bool > > exp = it = > SqlFunc . IIF ( SqlFunc . Contains ( it . Name , "a" ) , 1 , 2 ) = = 1 ;
2017-06-12 17:47:25 +08:00
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
2017-06-12 23:34:43 +08:00
base . Check ( value , pars , "(( CASE WHEN ([Name] like '%'+@MethodConst0+'%') THEN @MethodConst1 ELSE @MethodConst2 END ) = @Const3 )" , new List < SugarParameter > ( )
2017-06-12 17:47:25 +08:00
{
2017-06-12 23:34:43 +08:00
new SugarParameter ( "@MethodConst0" , "a" ) ,
new SugarParameter ( "@MethodConst1" , 1 ) ,
new SugarParameter ( "@MethodConst2" , 2 ) ,
new SugarParameter ( "@Const3" , 1 )
2017-06-12 18:19:18 +08:00
} , "IIF2 error" ) ;
2017-06-12 17:47:25 +08:00
}
2017-08-13 21:34:29 +08:00
private void IIF3 ( )
{
Expression < Func < Student , bool > > exp = it = > SqlFunc . IIF ( SqlFunc . Contains ( it . Name , "a" ) , true , false ) = = true ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(( CASE WHEN ([Name] like '%'+@MethodConst0+'%') THEN @MethodConst1 ELSE @MethodConst2 END ) = @Const3 )" , new List < SugarParameter > ( )
{
new SugarParameter ( "@MethodConst0" , "a" ) ,
new SugarParameter ( "@MethodConst1" , true ) ,
new SugarParameter ( "@MethodConst2" , false ) ,
new SugarParameter ( "@Const3" , true )
} , "IIF3 error" ) ;
}
private void IIF4 ( )
{
2017-08-14 00:01:01 +08:00
Expression < Func < DataTestInfo2 , bool > > exp = it = > SqlFunc . IIF ( true , it . Bool1 , it . Bool2 ) = = true ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(( CASE WHEN ( 1 = 1 ) THEN [Bool1] ELSE [Bool2] END ) = @Const0 )" , new List < SugarParameter > ( )
{
new SugarParameter ( "@Const0" , true )
} , "IIF4 error" ) ;
2017-08-13 21:34:29 +08:00
}
2017-08-14 00:39:25 +08:00
private void IIF5 ( )
{
Expression < Func < DataTestInfo , bool > > exp = it = > SqlFunc . IIF ( true , Convert . ToBoolean ( it . Datetime1 ) , SqlFunc . ToBool ( it . Datetime1 ) ) = = false ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(( CASE WHEN ( 1 = 1 ) THEN CAST([Datetime1] AS BIT) ELSE CAST([Datetime1] AS BIT) END ) = @Const0 )" , new List < SugarParameter > ( )
{
new SugarParameter ( "@Const0" , false )
} , "IIF5 error" ) ;
2017-08-21 10:47:52 +08:00
IIF6 ( ) ;
}
private void IIF6 ( )
{
var dt = DateTime . Now . Date ;
Expression < Func < DataTestInfo , bool > > exp = it = > SqlFunc . IIF ( dt = = it . Datetime1 , it . Datetime1 , it . Datetime1 ) = = dt ;
SqlServerExpressionContext expContext = new SqlServerExpressionContext ( ) ;
expContext . MappingColumns = new MappingColumnList ( ) ;
expContext . MappingColumns . Add ( "Datetime1" , "Datetime2" , "DataTestInfo" ) ;
expContext . Resolve ( exp , ResolveExpressType . WhereSingle ) ;
var value = expContext . Result . GetString ( ) ;
var pars = expContext . Parameters ;
base . Check ( value , pars , "(( CASE WHEN ( @Datetime10 = [Datetime2] ) THEN [Datetime2] ELSE [Datetime2] END ) = @Const1 )" , new List < SugarParameter > ( )
{
new SugarParameter ( "@Datetime10" , dt ) ,
new SugarParameter ( "@Const1" , dt )
} , "IIF6 error" ) ;
2017-08-14 00:39:25 +08:00
}
2017-01-28 21:56:15 +08:00
}
}
2017-01-30 15:41:16 +08:00