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();
|
|
|
|
|
}
|
|
|
|
|
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-14 20:53:04 +08:00
|
|
|
|
}
|
|
|
|
|
}
|