mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2026-02-25 21:22:55 +08:00
Update Demo
This commit is contained in:
@@ -68,10 +68,5 @@ namespace OrmTest.UnitTest
|
||||
throw new Exception("DataTest Error");
|
||||
}
|
||||
}
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
return db;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace OrmTest.UnitTest
|
||||
{
|
||||
public class DataTest2 : UnitTestBase
|
||||
{
|
||||
public interface IEntity<T> {
|
||||
T ID { get; set; }
|
||||
}
|
||||
public abstract class Entity<T> : IEntity<T>
|
||||
{
|
||||
public virtual T ID { get; set; }
|
||||
}
|
||||
public class MyModel: Entity<int>
|
||||
{
|
||||
public override int ID { get; set; }
|
||||
}
|
||||
private DataTest2() { }
|
||||
public DataTest2(int eachCount)
|
||||
{
|
||||
this.Count = eachCount;
|
||||
}
|
||||
|
||||
public void Init()
|
||||
{
|
||||
var db = GetInstance();
|
||||
var t1 = db.Queryable<MyModel>().AS("Student").ToList();
|
||||
}
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
return db;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -51,12 +51,11 @@ namespace OrmTest.UnitTest
|
||||
base.Check(@"DELETE FROM [STudent] WHERE ( [ID] = @Id0 ) ", new List<SugarParameter>() {
|
||||
new SugarParameter("@Id0",1)
|
||||
}, t5.Key, t5.Value, "Delte t5 error");
|
||||
}
|
||||
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
return db;
|
||||
var t6 = db.Deleteable<Student>().Where("id=@id",new { id=1}).ToSql();
|
||||
base.Check(@"DELETE FROM [STudent] WHERE id=@id", new List<SugarParameter>() {
|
||||
new SugarParameter("@id",1)
|
||||
}, t6.Key, t6.Value, "Delte t6 error");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using OrmTest.Demo;
|
||||
using OrmTest.Models;
|
||||
|
||||
namespace OrmTest.UnitTest
|
||||
{
|
||||
public class EnumTest : UnitTestBase
|
||||
{
|
||||
private EnumTest() { }
|
||||
public EnumTest(int eachCount)
|
||||
{
|
||||
this.Count = eachCount;
|
||||
}
|
||||
public void Init()
|
||||
{
|
||||
|
||||
var db = GetInstance();
|
||||
var shoolValue = SchoolEnum.HarvardUniversity;
|
||||
var enums = new SchoolEnum[] { shoolValue, SchoolEnum.UniversityOfOxford };
|
||||
var list = db.Queryable<StudentEnum>().AS("student").Where(it => it.SchoolId == shoolValue).ToList();
|
||||
|
||||
var x = new StudentEnum()
|
||||
{
|
||||
Name = shoolValue.ToString(),
|
||||
SchoolId = shoolValue
|
||||
};
|
||||
var x2 = db.Queryable<StudentEnum>().AS("student").Where(it => enums.Contains(it.SchoolId)).ToSql();
|
||||
var id= db.Insertable(x).AS("student").ExecuteReturnIdentity();
|
||||
var data = db.Queryable<StudentEnum>().AS("student").InSingle(id);
|
||||
shoolValue = SchoolEnum.UniversityOfOxford;
|
||||
var sql= db.Updateable<StudentEnum>().AS("student").UpdateColumns(it=>new StudentEnum() { Name="a" , SchoolId= shoolValue }).Where(it=>it.Id==id).ToSql();
|
||||
|
||||
var sql2 = db.Updateable<StudentEnum>().AS("student").UpdateColumns(it => new StudentEnum() { Name = "a", SchoolId = SchoolEnum.UniversityOfOxford }).Where(it => it.Id == id).ToSql();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,7 @@ namespace OrmTest.UnitTest
|
||||
{
|
||||
FieldSingle();
|
||||
FieldMultiple();
|
||||
FieldMultiple2();
|
||||
}
|
||||
base.End("Filed Test");
|
||||
}
|
||||
@@ -43,6 +44,14 @@ namespace OrmTest.UnitTest
|
||||
Check(selectorValue, null, expContext.GetTranslationColumnName("it.Name"), null, "FieldMultiple error");
|
||||
}
|
||||
|
||||
private void FieldMultiple2()
|
||||
{
|
||||
Expression<Func<Student, object>> exp = it =>SqlFunc.AggregateAvg(it.Id);
|
||||
ExpressionContext expContext = GetContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.FieldMultiple);
|
||||
var selectorValue = expContext.Result.GetString();
|
||||
Check(selectorValue, null, "AVG([it].[Id])", null, "FieldMultiple error");
|
||||
}
|
||||
public ExpressionContext GetContext()
|
||||
{
|
||||
return new SqlServerExpressionContext();//可以更换
|
||||
|
||||
@@ -30,8 +30,12 @@ namespace OrmTest.UnitTest
|
||||
ExtendDate();
|
||||
|
||||
//SqlFun methods
|
||||
MappingColumn();
|
||||
IIF();
|
||||
IIF2();
|
||||
IIF3();
|
||||
IIF4();
|
||||
IIF5();
|
||||
#region StringIsNullOrEmpty
|
||||
HasValue();
|
||||
HasNumber();
|
||||
@@ -46,6 +50,7 @@ namespace OrmTest.UnitTest
|
||||
Trim();
|
||||
Contains();
|
||||
Contains2();
|
||||
Contains3();
|
||||
ContainsArray();
|
||||
StartsWith();
|
||||
EndsWith();
|
||||
@@ -68,6 +73,7 @@ namespace OrmTest.UnitTest
|
||||
Substring();
|
||||
Replace();
|
||||
Length();
|
||||
Time();
|
||||
}
|
||||
base.End("Method Test");
|
||||
}
|
||||
@@ -107,8 +113,49 @@ namespace OrmTest.UnitTest
|
||||
base.Check(value, pars, "(LEN(@MethodConst0) > @Const1 )", new List<SugarParameter>() {
|
||||
new SugarParameter("@MethodConst0","aaaa"),new SugarParameter("@Const1",1)
|
||||
}, "Length error");
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
|
||||
private void Replace()
|
||||
{
|
||||
var x2 = Guid.NewGuid();
|
||||
@@ -272,8 +319,8 @@ namespace OrmTest.UnitTest
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, " ((@MethodConst1(@MethodConst0)) = @Const2 ) ", new List<SugarParameter>() {
|
||||
new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",DateType.Year),new SugarParameter("@Const2",1)
|
||||
base.Check(value, pars, " (DateName(Year,@MethodConst0) = @Const2 ) ", new List<SugarParameter>() {
|
||||
new SugarParameter("@MethodConst0",x2),new SugarParameter("@Const2",1)
|
||||
}, "DateValue error");
|
||||
}
|
||||
|
||||
@@ -319,9 +366,9 @@ namespace OrmTest.UnitTest
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "((DATEADD(@MethodConst2,@MethodConst1,@MethodConst0)) = @Const3 )", new List<SugarParameter>() {
|
||||
new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",11),new SugarParameter("@Const3",x2),
|
||||
new SugarParameter("@MethodConst2",DateType.Millisecond)
|
||||
base.Check(value, pars, "((DATEADD(Millisecond,@MethodConst1,@MethodConst0)) = @Const3 )", new List<SugarParameter>() {
|
||||
new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",11),new SugarParameter("@Const3",x2)
|
||||
|
||||
}, "DateAddByType error");
|
||||
}
|
||||
private void DateAddDay()
|
||||
@@ -334,7 +381,39 @@ namespace OrmTest.UnitTest
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "((DATEADD(day,@MethodConst1,@MethodConst0)) = @Const2 )", new List<SugarParameter>() {
|
||||
new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",1),new SugarParameter("@Const2",x2)
|
||||
}, "DateIsSameByType error");
|
||||
}, "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;
|
||||
base.Check(value, pars, "((DATEADD(Hour,@MethodConst1,[Datetime2])) = @Const2 )", new List<SugarParameter>() {
|
||||
new SugarParameter("@MethodConst1",10)
|
||||
,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;
|
||||
base.Check(value, pars, "((DATEADD(Hour,@MethodConst2,@MethodConst1)) = @Const3 )", new List<SugarParameter>() {
|
||||
new SugarParameter("@MethodConst2",1),
|
||||
new SugarParameter("@MethodConst1",x2)
|
||||
,new SugarParameter("@Const3",x2)
|
||||
}, "DateAddDay3 error");
|
||||
}
|
||||
|
||||
private void DateIsSameByType()
|
||||
@@ -345,9 +424,8 @@ namespace OrmTest.UnitTest
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, " (DATEDIFF(@MethodConst2,@MethodConst0,@MethodConst1)=0) ", new List<SugarParameter>() {
|
||||
new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",x2),
|
||||
new SugarParameter("@MethodConst2",DateType.Millisecond)
|
||||
base.Check(value, pars, " (DATEDIFF(Millisecond,@MethodConst0,@MethodConst1)=0) ", new List<SugarParameter>() {
|
||||
new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",x2)
|
||||
}, "DateIsSameByType error");
|
||||
}
|
||||
private void DateIsSameByDay()
|
||||
@@ -428,6 +506,18 @@ namespace OrmTest.UnitTest
|
||||
new SugarParameter("@MethodConst0","a")
|
||||
}, "Contains2 error");
|
||||
}
|
||||
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");
|
||||
}
|
||||
|
||||
private void ExtendContainsArray() {
|
||||
var array = new string[] { "1", "2" }.ToList();
|
||||
@@ -575,7 +665,17 @@ namespace OrmTest.UnitTest
|
||||
|
||||
}, "HasNumber error");
|
||||
}
|
||||
|
||||
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");
|
||||
}
|
||||
private void IIF()
|
||||
{
|
||||
Expression<Func<Student, bool>> exp = it => SqlFunc.IIF(it.Id == 1, 1, 2)==1;
|
||||
@@ -607,6 +707,48 @@ namespace OrmTest.UnitTest
|
||||
new SugarParameter("@Const3",1)
|
||||
}, "IIF2 error");
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
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");
|
||||
}
|
||||
|
||||
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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,10 @@ namespace OrmTest.UnitTest
|
||||
for (int i = 0; i < base.Count; i++)
|
||||
{
|
||||
single();
|
||||
single2();
|
||||
single3();
|
||||
single4();
|
||||
single5();
|
||||
Multiple();
|
||||
singleDynamic();
|
||||
MultipleDynamic();
|
||||
@@ -33,37 +37,42 @@ namespace OrmTest.UnitTest
|
||||
{
|
||||
Expression<Func<Student, School, object>> exp = (it, school) => new Student() { Name = "a", Id = it.Id, SchoolId = school.Id, TestId = it.Id + 1 };
|
||||
ExpressionContext expContext = new ExpressionContext();
|
||||
expContext.IsSingle = false;
|
||||
expContext.Resolve(exp, ResolveExpressType.SelectMultiple);
|
||||
var selectorValue = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(
|
||||
selectorValue,
|
||||
pars,
|
||||
@" @constant1 AS Name , it.Id AS Id , school.Id AS SchoolId , ( it.Id + 1 ) AS TestId ",
|
||||
@" @constant0 AS [Name] , [it].[Id] AS [Id] , [school].[Id] AS [SchoolId] , ( [it].[Id] + @Id1 ) AS [TestId] ",
|
||||
new List<SugarParameter>(){
|
||||
new SugarParameter("@constant1","a")},
|
||||
new SugarParameter("@constant0","a"),
|
||||
new SugarParameter("@Id1",1)
|
||||
},
|
||||
"Select.Multiple Error");
|
||||
}
|
||||
|
||||
private void MultipleDynamic()
|
||||
private void MultipleDynamic()
|
||||
{
|
||||
Expression<Func<Student, School, object>> exp = (it, school) => new { Name = "a", Id = it.Id / 2, SchoolId = school.Id };
|
||||
ExpressionContext expContext = new ExpressionContext();
|
||||
expContext.IsSingle = false;
|
||||
expContext.Resolve(exp, ResolveExpressType.SelectMultiple);
|
||||
var selectorValue = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(
|
||||
selectorValue,
|
||||
pars,
|
||||
@" @constant1 AS Name , ( it.Id / 2 ) AS Id , school.Id AS SchoolId ",
|
||||
@" @constant0 AS [Name] , ( [it].[Id] / @Id1 ) AS [Id] , [school].[Id] AS [SchoolId] ",
|
||||
new List<SugarParameter>(){
|
||||
new SugarParameter("@constant1","a")},
|
||||
new SugarParameter("@constant0","a"),
|
||||
new SugarParameter("@Id1", 2)},
|
||||
"Select.MultipleDynamic Error");
|
||||
}
|
||||
private void single()
|
||||
{
|
||||
int p = 1;
|
||||
Expression<Func<Student, object>> exp = it => new Student() { Name = "a", Id = it.Id, SchoolId = p,TestId=it.Id+1 };
|
||||
Expression<Func<Student, object>> exp = it => new Student() { Name = "a", Id = it.Id, SchoolId = p,TestId=it.Id+11 };
|
||||
ExpressionContext expContext = new ExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.SelectSingle);
|
||||
var selectorValue = expContext.Result.GetString();
|
||||
@@ -71,17 +80,75 @@ namespace OrmTest.UnitTest
|
||||
base.Check(
|
||||
selectorValue,
|
||||
pars,
|
||||
@" @constant1 AS Name , Id AS Id , @constant3 AS SchoolId , ( Id + 1 ) AS TestId ",
|
||||
@" @constant0 AS [Name] , [Id] AS [Id] , @constant1 AS [SchoolId] , ( [Id] + @Id2 ) AS [TestId] ",
|
||||
new List<SugarParameter>(){
|
||||
new SugarParameter("@constant1","a"),
|
||||
new SugarParameter("@constant3",1)},
|
||||
new SugarParameter("@constant0","a"),
|
||||
new SugarParameter("@constant1",1),
|
||||
new SugarParameter("@Id2",11 ) },
|
||||
"Select.single Error");
|
||||
}
|
||||
private void single2(int p=1)
|
||||
{
|
||||
Expression<Func<Student, object>> exp = it => new Student() { Name = "a", Id = it.Id, SchoolId = p, TestId = it.Id + 11 };
|
||||
ExpressionContext expContext = new ExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.SelectSingle);
|
||||
var selectorValue = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(
|
||||
selectorValue,
|
||||
pars,
|
||||
@" @constant0 AS [Name] , [Id] AS [Id] , @constant1 AS [SchoolId] , ( [Id] + @Id2 ) AS [TestId] ",
|
||||
new List<SugarParameter>(){
|
||||
new SugarParameter("@constant0","a"),
|
||||
new SugarParameter("@constant1",1),
|
||||
new SugarParameter("@Id2",11 ) },
|
||||
"Select.single Error");
|
||||
}
|
||||
private void single3(int p = 1)
|
||||
{
|
||||
Expression<Func<Student, object>> exp = it => new DataTestInfo() { Datetime1=DateTime.Now, String=it.Name};
|
||||
ExpressionContext expContext = new ExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.SelectSingle);
|
||||
var selectorValue = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(
|
||||
@" @constant0 AS [Datetime1] , [Name] AS [String] ", null,selectorValue,null,
|
||||
"Select.single3 Error");
|
||||
}
|
||||
|
||||
private void single4(int p = 1)
|
||||
{
|
||||
Expression<Func<Student, object>> 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.single4 Error");
|
||||
}
|
||||
|
||||
private void single5()
|
||||
{
|
||||
var p =(DateTime?) DateTime.Now;
|
||||
Expression<Func<Student, object>> exp = it => p.HasValue;
|
||||
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
||||
expContext.IsSingle = false;
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereMultiple);
|
||||
var selectorValue = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(
|
||||
@"( @constant0<>'' AND @constant0 IS NOT NULL )", new List<SugarParameter>() {
|
||||
new SugarParameter("@constant0",p)
|
||||
}, selectorValue, pars,
|
||||
"Select.single4 Error");
|
||||
}
|
||||
|
||||
private void singleDynamic()
|
||||
{
|
||||
string a = "a";
|
||||
Expression<Func<Student, object>> exp = it => new { x = it.Id, shoolid = 1, name = a,p=it.Id*1 };
|
||||
Expression<Func<Student, object>> exp = it => new { x = it.Id, shoolid = 1, name = a,p=it.Id*2 };
|
||||
ExpressionContext expContext = new ExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.SelectSingle);
|
||||
var selectorValue = expContext.Result.GetString();
|
||||
@@ -89,11 +156,12 @@ namespace OrmTest.UnitTest
|
||||
base.Check(
|
||||
selectorValue,
|
||||
pars,
|
||||
@" Id AS x , @constant2 AS shoolid , @constant3 AS name , ( Id * 1 ) AS p ",
|
||||
@" [Id] AS [x] , @constant0 AS [shoolid] , @constant1 AS [name] , ( [Id] * @Id2 ) AS [p] ",
|
||||
new List<SugarParameter>(){
|
||||
new SugarParameter("@constant2",1),
|
||||
new SugarParameter("@constant3","a")},
|
||||
"Select.single Error");
|
||||
new SugarParameter("@constant0",1),
|
||||
new SugarParameter("@constant1","a"),
|
||||
new SugarParameter("@Id2",2)},
|
||||
"Select.singleDynamic Error");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,16 @@ namespace OrmTest.UnitTest
|
||||
base.Begin();
|
||||
for (int i = 0; i < base.Count; i++)
|
||||
{
|
||||
|
||||
whereSingle23();
|
||||
whereSingle22();
|
||||
whereSingle21();
|
||||
whereSingle20();
|
||||
whereSingle19();
|
||||
whereSingle18();
|
||||
whereSingle17();
|
||||
whereSingle16();
|
||||
whereSingle15();
|
||||
whereSingle1();
|
||||
whereSingle2();
|
||||
whereSingle3();
|
||||
@@ -35,6 +45,7 @@ namespace OrmTest.UnitTest
|
||||
whereSingle12();
|
||||
whereSingle13();
|
||||
whereSingle14();
|
||||
whereSingle15();
|
||||
WhereMultiple1();
|
||||
WhereMultiple2();
|
||||
|
||||
@@ -249,6 +260,124 @@ namespace OrmTest.UnitTest
|
||||
|
||||
}, "whereSingle14");
|
||||
}
|
||||
|
||||
private void whereSingle15()
|
||||
{
|
||||
Expression<Func<DataTestInfo, bool>> exp = it =>it.Money2 == 1;
|
||||
ExpressionContext expContext = new ExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "( [Money2] = @Const0 )", new List<SugarParameter>()
|
||||
{
|
||||
new SugarParameter("@Const0",1)
|
||||
}, "whereSingle15");
|
||||
}
|
||||
|
||||
private void whereSingle16()
|
||||
{
|
||||
Dictionary<string, string> dic = new Dictionary<string, string>();
|
||||
dic.Add("key", "x1");
|
||||
Expression<Func<DataTestInfo, bool>> exp = it => it.String == dic["key"];
|
||||
ExpressionContext expContext = new ExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "( [String] = @Const0 )", new List<SugarParameter>()
|
||||
{
|
||||
new SugarParameter("@Const0",dic["key"])
|
||||
}, "whereSingle16");
|
||||
}
|
||||
|
||||
private void whereSingle17()
|
||||
{
|
||||
Expression<Func<DataTestInfo, bool>> exp = it =>true&&it.String.Contains("a");
|
||||
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "(( 1 = 1 ) AND ([String] like '%'+@MethodConst1+'%') )", new List<SugarParameter>()
|
||||
{
|
||||
new SugarParameter("@MethodConst1","a")
|
||||
}, "whereSingle17");
|
||||
}
|
||||
|
||||
private void whereSingle18()
|
||||
{
|
||||
Expression<Func<DataTestInfo2, bool>> exp = it => !it.Bool1;
|
||||
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "NOT ( [Bool1]=1 ) ", new List<SugarParameter>()
|
||||
{
|
||||
|
||||
}, "whereSingle18");
|
||||
}
|
||||
private void whereSingle19()
|
||||
{
|
||||
Expression<Func<DataTestInfo2, bool>> exp = it => it.Bool2.Value==false;
|
||||
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "( [Bool2] = @Value0 )", new List<SugarParameter>()
|
||||
{
|
||||
new SugarParameter("@Value0",false)
|
||||
}, "whereSingle19");
|
||||
}
|
||||
private void whereSingle20()
|
||||
{
|
||||
Expression<Func<DataTestInfo2, bool>> exp = it => it.Bool2.Value == it.Bool1;
|
||||
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "( [Bool2] = [Bool1] )", new List<SugarParameter>()
|
||||
{
|
||||
|
||||
}, "whereSingle19");
|
||||
}
|
||||
|
||||
private void whereSingle21()
|
||||
{
|
||||
Expression<Func<DataTestInfo2, bool>> exp = it => it.Bool2.Value;
|
||||
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "( [Bool2]=1 )", new List<SugarParameter>()
|
||||
{
|
||||
|
||||
}, "whereSingle21");
|
||||
}
|
||||
|
||||
private void whereSingle22()
|
||||
{
|
||||
Expression<Func<DataTestInfo2, bool>> exp = it => !it.Bool2.Value;
|
||||
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "NOT ( [Bool2]=1 ) ", new List<SugarParameter>()
|
||||
{
|
||||
|
||||
}, "whereSingle22");
|
||||
}
|
||||
|
||||
private void whereSingle23()
|
||||
{
|
||||
decimal? val = 1;
|
||||
Expression<Func<DataTestInfo, bool>> exp = it => it.Decimal2==val.Value;
|
||||
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
||||
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
||||
var value = expContext.Result.GetString();
|
||||
var pars = expContext.Parameters;
|
||||
base.Check(value, pars, "( [Decimal2] = @Const0 )", new List<SugarParameter>()
|
||||
{
|
||||
new SugarParameter("@Const0",val)
|
||||
}, "whereSingle23");
|
||||
}
|
||||
}
|
||||
|
||||
public class WhereConst
|
||||
|
||||
@@ -116,12 +116,37 @@ new List<SugarParameter>() {
|
||||
|
||||
insertObj.Name = null;
|
||||
var t10 = db.Insertable(insertObj).ExecuteCommand();
|
||||
}
|
||||
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
return db;
|
||||
var t11 = db.Insertable(new MyStudent() { Id = 1, Name = "张三" }).AS("Student").ToSql();
|
||||
base.Check(@"INSERT INTO [Student]
|
||||
([Name])
|
||||
VALUES
|
||||
(@Name) ;SELECT SCOPE_IDENTITY();", new List<SugarParameter>() {
|
||||
new SugarParameter("@Name","张三")
|
||||
}, t11.Key, t11.Value, "Insert t11 error");
|
||||
|
||||
|
||||
var t12 = db.Insertable<Student>(new { Name = "a" }).ToSql();
|
||||
base.Check(@"INSERT INTO [STudent]
|
||||
([Name])
|
||||
VALUES
|
||||
(@Name) ;SELECT SCOPE_IDENTITY();", new List<SugarParameter>() {
|
||||
new SugarParameter("@Name","a")
|
||||
}, t12.Key, t12.Value, "Insert t12 error");
|
||||
|
||||
var t13 = db.Insertable<Student>(new Dictionary<string, object>() { {"id",0 },{ "name","2"} }).ToSql();
|
||||
base.Check(@"INSERT INTO [STudent]
|
||||
([Name])
|
||||
VALUES
|
||||
(@Name) ;SELECT SCOPE_IDENTITY();", new List<SugarParameter>() {
|
||||
new SugarParameter("@Name","2")
|
||||
}, t13.Key, t13.Value, "Insert t13 error");
|
||||
}
|
||||
}
|
||||
|
||||
public class MyStudent {
|
||||
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest.UnitTest
|
||||
{
|
||||
public class Mapping:UnitTestBase
|
||||
public class Mapping : UnitTestBase
|
||||
{
|
||||
private Mapping() { }
|
||||
public Mapping(int eachCount)
|
||||
@@ -16,30 +16,53 @@ namespace OrmTest.UnitTest
|
||||
this.Count = eachCount;
|
||||
}
|
||||
|
||||
public void Init() {
|
||||
public void Init()
|
||||
{
|
||||
|
||||
var db = GetInstance();
|
||||
var t1= db.Queryable<Student>().Where(it=>it.Id==1).ToSql();
|
||||
base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WHERE ( [ID] = @Id0 ) ", null, t1.Key, null,"Mapping t1 error");
|
||||
var t1 = db.Queryable<Student>().Where(it => it.Id == 1).ToSql();
|
||||
base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WHERE ( [ID] = @Id0 ) ", null, t1.Key, null, "Mapping t1 error");
|
||||
|
||||
db.MappingColumns.Add("Id", "id", "School");
|
||||
var t2 = db.Queryable<Student, School>((st, sc) => new object[] {
|
||||
JoinType.Left,st.SchoolId==sc.Id
|
||||
})
|
||||
.Where(st => st.Id == 1)
|
||||
.Where((st,sc) => sc.Id == 1)
|
||||
.Where((st,sc) => sc.Id == st.Id)
|
||||
.Where((st, sc) => sc.Id == 1)
|
||||
.Where((st, sc) => sc.Id == st.Id)
|
||||
.GroupBy(st => st.Id)
|
||||
.GroupBy((st,sc) => sc.Id).OrderBy(st => st.Id,OrderByType.Asc)
|
||||
.Select((st,sc)=> new { stid=st.Id,scid=sc.Id}).ToSql();
|
||||
.GroupBy((st, sc) => sc.Id).OrderBy(st => st.Id, OrderByType.Asc)
|
||||
.Select((st, sc) => new { stid = st.Id, scid = sc.Id }).ToSql();
|
||||
base.Check(@"SELECT [st].[ID] AS [stid] , [sc].[id] AS [scid] FROM [STudent] st Left JOIN [School] sc ON ( [st].[SchoolId] = [sc].[id] ) WHERE ( [st].[ID] = @Id0 ) AND ( [sc].[id] = @Id1 ) AND ( [sc].[id] = [st].[ID] )GROUP BY [st].[ID],[sc].[id] ORDER BY [st].[ID] ASC ",
|
||||
null, t2.Key, null, " Mapping t2 error");
|
||||
var x2 = GetInstance();
|
||||
|
||||
var q = x2.Queryable<Student>().AS("t");
|
||||
var t3 = q.ToSql();
|
||||
var t4 = q.ToSql();
|
||||
base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [t] ", null, t3.Key, null, "Mapping t3 error");
|
||||
base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [t] ", null, t4.Key, null, "Mapping t3 error");
|
||||
|
||||
var x3 = GetInstance2();
|
||||
x3.MappingTables.Add("Student", "studenT");
|
||||
int count = 0;
|
||||
var t5 = x3.Queryable<Student>().ToPageList(1,2,ref count);
|
||||
}
|
||||
|
||||
public SqlSugarClient GetInstance()
|
||||
public new SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() {InitKeyType=InitKeyType.Attribute, ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { InitKeyType = InitKeyType.Attribute, ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
return db;
|
||||
}
|
||||
public SqlSugarClient GetInstance2()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { InitKeyType = InitKeyType.Attribute, ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
db.Ado.IsEnableLogEvent = true;
|
||||
db.Ado.LogEventStarting = (sql, pars) =>
|
||||
{
|
||||
Console.WriteLine(sql + "\r\n" + db.RewritableMethods.SerializeObject(pars));
|
||||
Console.WriteLine();
|
||||
};
|
||||
return db;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,10 +23,67 @@ namespace OrmTest.UnitTest
|
||||
Q1();
|
||||
Q2();
|
||||
Q3();
|
||||
Q4();
|
||||
q5();
|
||||
q6();
|
||||
q7();
|
||||
}
|
||||
base.End("Method Test");
|
||||
}
|
||||
|
||||
private void q6()
|
||||
{
|
||||
using (var db = GetInstance())
|
||||
{
|
||||
var join6 = db.Queryable<Student, School>((st, sc) => new object[] {
|
||||
JoinType.Left,st.SchoolId==sc.Id
|
||||
}).Select((st, sc) => new ViewModelStudent { Name = st.Name, SchoolId = SqlFunc.AggregateMin(sc.Id) }).ToSql();
|
||||
|
||||
string sql = @"SELECT [st].[Name] AS [Name] , MIN([sc].[Id]) AS [SchoolId] FROM [STudent] st Left JOIN [School] sc ON ( [st].[SchoolId] = [sc].[Id] ) ";
|
||||
base.Check(sql, null, join6.Key, null, "join 6 Error");
|
||||
}
|
||||
}
|
||||
|
||||
private void q7()
|
||||
{
|
||||
using (var db = GetInstance())
|
||||
{
|
||||
var join7 = db.Queryable<Student, School>((st, sc) => new object[] {
|
||||
JoinType.Left,st.SchoolId==sc.Id
|
||||
}).Select((st, sc) => new ViewModelStudent { Name = st.Name, SchoolId = SqlFunc.AggregateMin(sc.Id*1) }).ToSql();
|
||||
|
||||
string sql = @"SELECT [st].[Name] AS [Name] , MIN(( [sc].[Id] * @Id0 )) AS [SchoolId] FROM [STudent] st Left JOIN [School] sc ON ( [st].[SchoolId] = [sc].[Id] ) ";
|
||||
base.Check(sql, new List<SugarParameter>() {
|
||||
new SugarParameter("@Id0",1)
|
||||
}, join7.Key, join7.Value, "join 7 Error");
|
||||
}
|
||||
}
|
||||
|
||||
private void q5()
|
||||
{
|
||||
using (var db = GetInstance())
|
||||
{
|
||||
db.MappingTables.Add("School", "SchoolTable");
|
||||
var join5= db.Queryable<Student, School>((st, sc) => st.SchoolId == sc.Id).Select(st => st)
|
||||
.GroupBy(st=> new{ st.Id,st.Name })
|
||||
.ToSql();
|
||||
string sql = @"SELECT st.* FROM [STudent] st ,[SchoolTable] sc WHERE ( [st].[SchoolId] = [sc].[Id] )GROUP BY [st].[ID],[st].[Name] ";
|
||||
base.Check(sql, null, join5.Key, null, "join 5 Error");
|
||||
}
|
||||
}
|
||||
|
||||
private void Q4()
|
||||
{
|
||||
using (var db = GetInstance())
|
||||
{
|
||||
db.MappingTables.Add("School", "SchoolTable");
|
||||
var join4 = db.Queryable<Student, School>((st, sc) => st.SchoolId == sc.Id).Select(st=>st).ToSql();
|
||||
string sql = @"SELECT st.* FROM [STudent] st ,[SchoolTable] sc WHERE ( [st].[SchoolId] = [sc].[Id] ) ";
|
||||
base.Check(sql, null, join4.Key, null, "join 4 Error");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void Q3()
|
||||
{
|
||||
using (var db = GetInstance())
|
||||
@@ -69,7 +126,7 @@ namespace OrmTest.UnitTest
|
||||
}
|
||||
|
||||
|
||||
public SqlSugarClient GetInstance()
|
||||
public new SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer });
|
||||
db.Ado.IsEnableLogEvent = true;
|
||||
|
||||
@@ -79,16 +79,23 @@ namespace OrmTest.UnitTest
|
||||
new List<SugarParameter>() {
|
||||
new SugarParameter("@Id0",0)
|
||||
}, t3.Key, t3.Value, "select t3 Error");
|
||||
|
||||
|
||||
db.Ado.IsEnableLogEvent = true;
|
||||
db.Ado.LogEventStarting = (sql, pars) =>
|
||||
{
|
||||
base.Check(" SELECT COUNT(1) FROM (SELECT [st].[ID] FROM [STudent] st Left JOIN [School] sc ON ( [st].[SchoolId] = [sc].[Id] ) Left JOIN [School] sc2 ON ( [sc2].[Id] = [sc].[Id] ) GROUP BY [st].[ID] ) CountTable ",
|
||||
null, sql, null, "select t4 Error");
|
||||
};
|
||||
|
||||
var t4 = db.Queryable<Student, School, School>((st, sc, sc2) => new object[] {
|
||||
JoinType.Left,st.SchoolId==sc.Id,
|
||||
JoinType.Left,sc2.Id==sc.Id
|
||||
}).GroupBy(st => st.Id).Select(st=>st.Id).Count();
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer });
|
||||
return db;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,29 +35,28 @@ namespace OrmTest.UnitTest
|
||||
var t2 = db.Queryable<Student>().With(SqlWith.NoLock).ToSql();
|
||||
base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WITH(NOLOCK)", null, t2.Key, null, "single t2 Error");
|
||||
|
||||
var t3 = db.Queryable<Student>().OrderBy(it => it.Id).ToSql();
|
||||
var t3 = db.Queryable<Student>().OrderBy(it=>it.Id).ToSql();
|
||||
base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] ORDER BY [ID] ASC", null, t3.Key, null, "single t3 Error");
|
||||
|
||||
var t4 = db.Queryable<Student>().OrderBy(it => it.Id).Take(3).ToSql();
|
||||
base.Check(@"SELECT * FROM (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() OVER(ORDER BY [ID] ASC) AS RowIndex FROM [STudent] ) T WHERE RowIndex BETWEEN 1 AND 3", null, t4.Key, null, "single t4 Error");
|
||||
|
||||
var t5 = db.Queryable<Student>().OrderBy(it => it.Id).Skip(3).ToSql();
|
||||
base.Check(@"SELECT * FROM (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() OVER(ORDER BY [ID] ASC) AS RowIndex FROM [STudent] ) T WHERE RowIndex BETWEEN 4 AND 9223372036854775807", null, t5.Key, null, "single t5 Error");
|
||||
base.Check(@"SELECT * FROM (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() OVER(ORDER BY [ID] ASC) AS RowIndex FROM [STudent] ) T WHERE RowIndex BETWEEN 4 AND 9223372036854775807", null, t5.Key,null, "single t5 Error");
|
||||
|
||||
int pageIndex = 2;
|
||||
int pageSize = 10;
|
||||
var t6 = db.Queryable<Student>().OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToSql();
|
||||
var t6 = db.Queryable<Student>().OrderBy(it => it.Id,OrderByType.Desc).Skip((pageIndex-1)*pageSize).Take(pageSize).ToSql();
|
||||
base.Check(@"SELECT * FROM (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() OVER(ORDER BY [ID] DESC) AS RowIndex FROM [STudent] ) T WHERE RowIndex BETWEEN 11 AND 20", null, t6.Key, null, "single t6 Error");
|
||||
|
||||
|
||||
int studentCount = db.Ado.GetInt("select count(1) from Student");
|
||||
var countIsSuccess = db.Queryable<Student>().Count() == studentCount;
|
||||
if (!countIsSuccess)
|
||||
{
|
||||
int studentCount=db.Ado.GetInt("select count(1) from Student");
|
||||
var countIsSuccess=db.Queryable<Student>().Count()== studentCount;
|
||||
if (!countIsSuccess) {
|
||||
throw new Exception(" single countIsSuccess Error");
|
||||
}
|
||||
|
||||
var t7 = db.Queryable<Student>().OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToPageList(pageIndex, pageSize, ref studentCount);
|
||||
var t7 = db.Queryable<Student>().OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToPageList(pageIndex,pageSize,ref studentCount);
|
||||
countIsSuccess = studentCount == db.Queryable<Student>().OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize * pageIndex).Count();
|
||||
if (!countIsSuccess)
|
||||
{
|
||||
@@ -65,7 +64,7 @@ namespace OrmTest.UnitTest
|
||||
}
|
||||
|
||||
int studentMin = db.Ado.GetInt("select min(id) from Student");
|
||||
var minIsSuccess = db.Queryable<Student>().Min(it => it.Id) == studentMin;
|
||||
var minIsSuccess = db.Queryable<Student>().Min(it=>it.Id) == studentMin;
|
||||
if (!minIsSuccess)
|
||||
{
|
||||
throw new Exception("single minIsSuccess Error");
|
||||
@@ -93,28 +92,31 @@ namespace OrmTest.UnitTest
|
||||
}
|
||||
|
||||
var t8 = db.Queryable<Student>()
|
||||
.Where(it => it.Id == 1)
|
||||
.WhereIF(true, it => SqlFunc.Contains(it.Name, "a"))
|
||||
.OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize).With(SqlWith.NoLock).ToSql();
|
||||
.Where(it=>it.Id==1)
|
||||
.WhereIF(true,it=> SqlFunc.Contains(it.Name,"a"))
|
||||
.OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize ).With(SqlWith.NoLock).ToSql();
|
||||
base.Check(@"SELECT * FROM (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() OVER(ORDER BY [ID] DESC) AS RowIndex FROM [STudent] WITH(NOLOCK) WHERE ( [ID] = @Id0 ) AND ([Name] like '%'+@MethodConst1+'%') ) T WHERE RowIndex BETWEEN 11 AND 20", new List<SugarParameter>() {
|
||||
new SugarParameter("@Id0",1),new SugarParameter("@MethodConst1","a")
|
||||
}, t8.Key, t8.Value, "single t8 Error");
|
||||
}, t8.Key, t8.Value,"single t8 Error");
|
||||
|
||||
|
||||
|
||||
var t9 = db.Queryable<Student>()
|
||||
.In(1)
|
||||
.Select(it => new { it.Id, it.Name, x = it.Id }).ToSql();
|
||||
.Select(it => new { it.Id, it.Name,x=it.Id }).ToSql();
|
||||
base.Check("SELECT [ID] AS [Id] , [Name] AS [Name] , [ID] AS [x] FROM [STudent] WHERE [Id] IN (@InPara0) ", new List<SugarParameter>() {
|
||||
new SugarParameter("@InPara0",1) }, t9.Key, t9.Value, "single t9 error");
|
||||
new SugarParameter("@InPara0",1) },t9.Key,t9.Value, "single t9 error");
|
||||
|
||||
var t10 = db.Queryable<Student>().Select(it => new StudentEnum() { Id = SqlFunc.GetSelfAndAutoFill(it.Id) }).ToSql();
|
||||
base.Check("SELECT * FROM [STudent] ", null, t10.Key, t10.Value, "single t10 error");
|
||||
|
||||
var t11= db.Queryable<Student>().GroupBy("id").OrderBy("id").Select("id").ToSql();
|
||||
base.Check("SELECT id FROM [STudent] GROUP BY id ORDER BY id ", null, t11.Key, t11.Value, "single t11 error");
|
||||
|
||||
|
||||
var t12 = db.Queryable<Student>().Where(it=>it.Id!=null).ToSql();
|
||||
base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WHERE ( [ID] IS NOT NULL )", null, t12.Key, t12.Value, "single t12 error");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer });
|
||||
return db;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,10 +23,5 @@ namespace OrmTest.UnitTest
|
||||
var x = db.Queryable<Student>().ToList();
|
||||
}
|
||||
}
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
return db;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,10 +9,6 @@ namespace OrmTest.UnitTest
|
||||
{
|
||||
public class MapColumn : UnitTestBase
|
||||
{
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer });
|
||||
return db;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,10 +19,5 @@ namespace OrmTest.UnitTest
|
||||
var x = db.Queryable<Student>().ToList();
|
||||
}
|
||||
}
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
return db;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,5 +45,11 @@ namespace OrmTest.UnitTest
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
return db;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -124,12 +124,42 @@ namespace OrmTest.UnitTest
|
||||
t10.Value,
|
||||
"Update 10 error"
|
||||
);
|
||||
var t11 = db.Updateable<DataTestInfo>().UpdateColumns(it => new DataTestInfo() { Datetime1=DateTime.MaxValue }).Where(it => it.Int1 == 11).ToSql();
|
||||
base.Check(@"UPDATE [DataTestInfo] SET
|
||||
[Datetime1] = @constant0 WHERE ( [Int1] = @Int11 )", new List<SugarParameter>() {
|
||||
new SugarParameter("@Int11",11),
|
||||
new SugarParameter("@constant0",DateTime.MaxValue) },
|
||||
t11.Key,
|
||||
t11.Value,
|
||||
"Update 11 error"
|
||||
);
|
||||
|
||||
var t12 = db.Updateable<DataTestInfo>().UpdateColumns(it => new DataTestInfo() { Int2 = it.Int2+1 }).Where(it => it.Int1 == 11).ToSql();
|
||||
base.Check(@"UPDATE [DataTestInfo] SET
|
||||
[Int2] = ( [Int2] + @Const0 ) WHERE ( [Int1] = @Int11 )", new List<SugarParameter>() {
|
||||
new SugarParameter("@Int11",11),
|
||||
new SugarParameter("@Const0",1) },
|
||||
t12.Key,
|
||||
t12.Value,
|
||||
"Update 12 error"
|
||||
);
|
||||
|
||||
|
||||
|
||||
var t13 = db.Updateable<Student>(new { Name = "a", id=1 }).ToSql();
|
||||
base.Check(@"UPDATE [STudent] SET
|
||||
[Name]=@Name WHERE [Id]=@Id", new List<SugarParameter>() {
|
||||
new SugarParameter("@Name","a"),
|
||||
new SugarParameter("@ID",1)
|
||||
}, t13.Key, t13.Value, "Insert t13 error");
|
||||
|
||||
var t14 = db.Updateable<Student>(new Dictionary<string, object>() { { "id", 0 }, { "name", "2" } }).ToSql();
|
||||
base.Check(@"UPDATE [STudent] SET
|
||||
[Name]=@Name WHERE [Id]=@Id", new List<SugarParameter>() {
|
||||
new SugarParameter("@Name", "2"),
|
||||
new SugarParameter("@ID", 0)
|
||||
}, t14.Key, t14.Value, "Insert t14 error");
|
||||
}
|
||||
|
||||
public SqlSugarClient GetInstance()
|
||||
{
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
|
||||
return db;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user