This commit is contained in:
sunkaixuan 2017-06-12 22:59:34 +08:00
parent d0d17366a7
commit 9e6b211c2c
3 changed files with 22 additions and 20 deletions

View File

@ -120,7 +120,7 @@ namespace OrmTest.Demo
var db = GetInstance();
var getAll = db.Queryable<Student>().ToList();
var getId = db.Queryable<Student>().Select(it => it.Id).ToList();
// var getIdIIF= db.Queryable<Student>().Select(it =>new { id = SqlFunc.IIF(it.Id == 0, 1, it.Id) }).ToList();
// var getIdIIF= db.Queryable<Student>().Select(it =>new { id = SqlFunc.IIF(it.Id == 0, 1, it.Id) }).ToList();
var getAllNoLock = db.Queryable<Student>().With(SqlWith.NoLock).ToList();
var getByPrimaryKey = db.Queryable<Student>().InSingle(2);
var getSingleOrDefault = db.Queryable<Student>().Single();

View File

@ -180,6 +180,25 @@ namespace SqlSugar
this.Context.Result.Append(" " + ExpressionConst.Format1 + parameter.BaseParameter.Index);
}
}
protected MethodCallExpressionArgs GetMethodCallArgs(ExpressionParameter parameter, Expression item)
{
var newContext = this.Context.GetCopyContext();
newContext.Resolve(item, this.Context.ResolveType);
this.Context.Index = newContext.Index;
this.Context.ParameterIndex = newContext.ParameterIndex;
if (newContext.Parameters.IsValuable())
{
this.Context.Parameters.AddRange(newContext.Parameters);
}
var methodCallExpressionArgs = new MethodCallExpressionArgs()
{
IsMember = true,
MemberName = newContext.Result.GetResultString()
};
return methodCallExpressionArgs;
}
protected void AppendNot(object Value)
{
this.Context.Result.Append("NOT");

View File

@ -42,7 +42,7 @@ namespace SqlSugar
var isBinaryExpression = item is BinaryExpression || item is MethodCallExpression;
if (isBinaryExpression)
{
Binary(parameter, model, item);
model.Args.Add(GetMethodCallArgs(parameter, item));
}
else
{
@ -58,7 +58,7 @@ namespace SqlSugar
var isBinaryExpression = item is BinaryExpression||item is MethodCallExpression;
if (isBinaryExpression)
{
Binary(parameter, model, item);
model.Args.Add(GetMethodCallArgs(parameter, item));
}
else
{
@ -68,23 +68,6 @@ namespace SqlSugar
var methodValue = GetMdthodValue(name, model);
base.AppendValue(parameter, isLeft, methodValue);
}
private void Binary(ExpressionParameter parameter, MethodCallExpressionModel model, Expression item)
{
var newContext = this.Context.GetCopyContext();
newContext.Resolve(item, this.Context.ResolveType);
this.Context.Index = newContext.Index ;
this.Context.ParameterIndex = newContext.ParameterIndex ;
if (newContext.Parameters.IsValuable())
{
this.Context.Parameters.AddRange(newContext.Parameters);
}
var methodCallExpressionArgs = new MethodCallExpressionArgs()
{
IsMember = true,
MemberName = newContext.Result.GetResultString()
};
model.Args.Add(methodCallExpressionArgs);
}
private void Default(ExpressionParameter parameter, MethodCallExpressionModel model, Expression item)
{
parameter.CommonTempData = CommonTempDataType.Result;