SqlSugar/OrmTest/ExpressionTest/Where.cs

102 lines
3.9 KiB
C#
Raw Normal View History

2017-01-28 14:32:06 +08:00
using OrmTest.Models;
using SqlSugar;
using System;
2017-01-14 20:53:04 +08:00
using System.Collections.Generic;
using System.Linq;
2017-01-28 14:32:06 +08:00
using System.Linq.Expressions;
2017-01-14 20:53:04 +08:00
using System.Text;
using System.Threading.Tasks;
namespace OrmTest.ExpressionTest
{
2017-01-28 14:32:06 +08:00
public class Where : ExpTestBase
2017-01-14 20:53:04 +08:00
{
2017-01-28 14:32:06 +08:00
private Where() { }
public Where(int eachCount)
{
this.Count = eachCount;
}
internal void Init()
{
base.Begin();
for (int i = 0; i < base.Count; i++)
{
whereSingle1();
whereSingle2();
whereSingle3();
whereSingle4();
2017-01-28 20:43:34 +08:00
whereSingle5();
2017-01-28 14:32:06 +08:00
}
base.End("Where Test");
}
private void whereSingle1()
{
Expression<Func<Student, bool>> exp = it => it.Id > 1;
ExpressionContext expContext = new ExpressionContext(exp, ResolveExpressType.WhereSingle);
expContext.Resolve();
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
2017-01-28 20:13:29 +08:00
base.Check(value, pars, "( Id > @Id0 )", new List<SugarParameter>() {
new SugarParameter("@Id0",1)
2017-01-28 14:32:06 +08:00
}, "whereSingle1");
}
private void whereSingle2()
{
2017-01-28 20:13:29 +08:00
Expression<Func<Student, bool>> exp = it => 1 > it.Id;
2017-01-28 14:32:06 +08:00
ExpressionContext expContext = new ExpressionContext(exp, ResolveExpressType.WhereSingle);
expContext.Resolve();
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
2017-01-28 20:13:29 +08:00
base.Check(value, pars, "( @Id0 > Id )", new List<SugarParameter>() {
new SugarParameter("@Id0",1)
2017-01-28 14:32:06 +08:00
}, "whereSingle2");
}
private void whereSingle3()
{
Expression<Func<Student, bool>> exp = it => it.Id > 1 || it.Name == "a";
ExpressionContext expContext = new ExpressionContext(exp, ResolveExpressType.WhereSingle);
expContext.Resolve();
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
2017-01-28 20:13:29 +08:00
base.Check(value, pars, " (( Id > @Id0 ) OR ( Name = @Name1 ))", new List<SugarParameter>() {
new SugarParameter("@Id0",1),
new SugarParameter("@Name1","a")
}, "whereSingle3");
2017-01-28 14:32:06 +08:00
}
private void whereSingle4()
{
2017-01-28 20:13:29 +08:00
Expression<Func<Student, bool>> exp = it => (it.Id > 1 && it.Name != "a") || it.Name == "a1";
2017-01-28 14:32:06 +08:00
ExpressionContext expContext = new ExpressionContext(exp, ResolveExpressType.WhereSingle);
expContext.Resolve();
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
2017-01-28 20:13:29 +08:00
base.Check(value, pars, " ((( Id > @Id0 ) AND ( Name <> @Name1 )) OR ( Name = @Name2 )) ", new List<SugarParameter>() {
new SugarParameter("@Id0",1),
new SugarParameter("@Name1","a"),
new SugarParameter("@Name2","a1")
2017-01-28 14:32:06 +08:00
}, "whereSingle4");
}
2017-01-28 20:43:34 +08:00
private void whereSingle5()
{
string name = "a";
WhereConst.name = "a1";
Expression<Func<Student, bool>> exp = it => (it.Id > 1 && it.Name != name) || it.Name == WhereConst.name;
ExpressionContext expContext = new ExpressionContext(exp, ResolveExpressType.WhereSingle);
expContext.Resolve();
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
base.Check(value, pars, " ((( Id > @Id0 ) AND ( Name <> @Name1 )) OR ( Name = @Name2 )) ", new List<SugarParameter>() {
new SugarParameter("@Id0",1),
new SugarParameter("@Name1","a"),
new SugarParameter("@Name2","a1")
}, "whereSingle4");
}
}
public class WhereConst
{
public static string name { get; set; }
2017-01-14 20:53:04 +08:00
}
}