This commit is contained in:
sunkaixuan 2017-05-25 02:46:00 +08:00
parent 62fb925df0
commit f6ed271aa1
3 changed files with 27 additions and 6 deletions

View File

@ -29,6 +29,7 @@ namespace OrmTest.UnitTest
whereSingle6();
whereSingle7(new Student() { Id = 1 });
whereSingle8(new Student() { Id = 1 });
whereSingle9(new Student() { Id = 1 });
WhereMultiple1();
WhereMultiple2();
@ -159,10 +160,22 @@ namespace OrmTest.UnitTest
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
base.Check(value, pars, "( [Name] IS @Name0 )", new List<SugarParameter>() {
new SugarParameter("@Name0",null)
base.Check(value, pars, "( [Name] IS NULL )", new List<SugarParameter>() {
}, "whereSingle8");
}
private void whereSingle9(Student st)
{
//Expression<Func<Student, bool>> exp = it => it.Name == st.Name;
//ExpressionContext expContext = new ExpressionContext();
//expContext.Resolve(exp, ResolveExpressType.WhereSingle);
//var value = expContext.Result.GetString();
//var pars = expContext.Parameters;
//base.Check(value, pars, "( [Name] IS NULL )", new List<SugarParameter>() {
//}, "whereSingle9");
}
}
public class WhereConst

View File

@ -110,7 +110,7 @@ namespace SqlSugar
{
if (parameter.BaseExpression is BinaryExpression || parameter.BaseExpression == null)
{
var otherExpression = isLeft == true ? parameter.BaseParameter.RightExpression : parameter.BaseParameter.LeftExpression;
var oppoSiteExpression = isLeft == true ? parameter.BaseParameter.RightExpression : parameter.BaseParameter.LeftExpression;
if (parameter.CurrentExpression is MethodCallExpression)
{
var appendValue = value;
@ -124,12 +124,19 @@ namespace SqlSugar
}
this.AppendOpreator(parameter, isLeft);
}
else if (otherExpression is MemberExpression)
else if (oppoSiteExpression is MemberExpression)
{
string appendValue = Context.SqlParameterKeyWord
+ ((MemberExpression)otherExpression).Member.Name
+ ((MemberExpression)oppoSiteExpression).Member.Name
+ Context.ParameterIndex;
this.Context.Parameters.Add(new SugarParameter(appendValue, value));
if (value.ObjToString() != "NULL" && !parameter.ValueIsNull)
{
this.Context.Parameters.Add(new SugarParameter(appendValue, value));
}
else
{
appendValue = value.ObjToString();
}
Context.ParameterIndex++;
appendValue = string.Format(" {0} ", appendValue);
if (isLeft == true)

View File

@ -34,6 +34,7 @@ namespace SqlSugar
var parentIsBinary = parameter.BaseParameter.CurrentExpression is BinaryExpression;
if (value == null && parentIsBinary) {
parameter.BaseParameter.ValueIsNull = true;
value = "NULL";
}
AppendValue(parameter, isLeft, value);
}