mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 18:22:23 +08:00
Enum Bug
This commit is contained in:
@@ -279,7 +279,7 @@ namespace OrmTest.Demo
|
||||
private static void Enum()
|
||||
{
|
||||
var db = GetInstance();
|
||||
// var list = db.Queryable<StudentEnum>().AS("Student").Where(it=>it.SchoolId== SchoolEnum.HarvardUniversity).ToList();
|
||||
var list = db.Queryable<StudentEnum>().AS("Student").Where(it=>it.SchoolId== SchoolEnum.HarvardUniversity).ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -64,7 +64,7 @@ namespace OrmTest.UnitTest
|
||||
base.Check(@"SELECT * FROM [STudent] st Left JOIN School sc ON ( [st].[SchoolId] = [sc].[Id] ) WHERE ( [st].[ID] > @Id0 ) ",
|
||||
new List<SugarParameter>() {
|
||||
new SugarParameter("@Id0",2)
|
||||
}, join2.Key, join2.Value, "join 1 Error");
|
||||
}, join2.Key, join2.Value, "join 2 Error");
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -9,7 +9,8 @@ namespace SqlSugar
|
||||
public enum CommonTempDataType
|
||||
{
|
||||
Default = 0,
|
||||
ChildNodeSet = 1,
|
||||
Simple = 2
|
||||
Result = 1,
|
||||
Append=2,
|
||||
Simple = 3
|
||||
}
|
||||
}
|
||||
|
@@ -57,6 +57,7 @@ namespace SqlSugar
|
||||
}
|
||||
else {
|
||||
base.Context.Result.Replace(ExpressionConst.Format1 + parameter.Index, operatorValue);
|
||||
base.Context.Result.Replace(ExpressionConst.Format1 +(parameter.Index+1), operatorValue);
|
||||
}
|
||||
base.Context.Result.Append(ExpressionConst.Format4);
|
||||
if (parameter.BaseExpression is BinaryExpression && parameter.IsLeft == true)
|
||||
|
@@ -15,7 +15,7 @@ namespace SqlSugar
|
||||
object value = expression.Value;
|
||||
var baseParameter = parameter.BaseParameter;
|
||||
baseParameter.ChildExpression = expression;
|
||||
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.ChildNodeSet);
|
||||
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);
|
||||
switch (parameter.Context.ResolveType)
|
||||
{
|
||||
case ResolveExpressType.SelectSingle:
|
||||
|
@@ -15,7 +15,7 @@ namespace SqlSugar
|
||||
var isLeft = parameter.IsLeft;
|
||||
object value = ExpressionTool.GetMemberValue(expression.Member, expression);
|
||||
var baseParameter = parameter.BaseParameter;
|
||||
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.ChildNodeSet);
|
||||
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);
|
||||
switch (parameter.Context.ResolveType)
|
||||
{
|
||||
case ResolveExpressType.Update:
|
||||
|
@@ -12,7 +12,7 @@ namespace SqlSugar
|
||||
{
|
||||
var baseParameter = parameter.BaseParameter;
|
||||
var isLeft = parameter.IsLeft;
|
||||
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.ChildNodeSet);
|
||||
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);
|
||||
var expression = base.Expression as MemberExpression;
|
||||
if (expression.Expression != null&& expression.Expression.NodeType!= ExpressionType.Parameter) {
|
||||
var value= ExpressionTool.GetMemberValue(expression.Member, expression);
|
||||
@@ -95,7 +95,7 @@ namespace SqlSugar
|
||||
|
||||
private string AppendMember(ExpressionParameter parameter, bool? isLeft, string fieldName)
|
||||
{
|
||||
if (parameter.BaseExpression is BinaryExpression)
|
||||
if (parameter.BaseExpression is BinaryExpression|| (parameter.BaseParameter.CommonTempData!=null&¶meter.BaseParameter.CommonTempData.Equals(CommonTempDataType.Append)))
|
||||
{
|
||||
fieldName = string.Format(" {0} ", fieldName);
|
||||
if (isLeft == true)
|
||||
|
@@ -16,7 +16,7 @@ namespace SqlSugar
|
||||
var isField = expression.Member is System.Reflection.FieldInfo;
|
||||
var isProperty = expression.Member is System.Reflection.PropertyInfo;
|
||||
var baseParameter = parameter.BaseParameter;
|
||||
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.ChildNodeSet);
|
||||
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);
|
||||
if (isField)
|
||||
{
|
||||
value = ExpressionTool.GetFiledValue(expression);
|
||||
|
@@ -39,7 +39,7 @@ namespace SqlSugar
|
||||
{
|
||||
foreach (var item in args)
|
||||
{
|
||||
parameter.CommonTempData = CommonTempDataType.ChildNodeSet;
|
||||
parameter.CommonTempData = CommonTempDataType.Result;
|
||||
base.Expression = item;
|
||||
base.Start();
|
||||
var methodCallExpressionArgs = new MethodCallExpressionArgs()
|
||||
@@ -72,7 +72,7 @@ namespace SqlSugar
|
||||
{
|
||||
foreach (var item in args)
|
||||
{
|
||||
parameter.CommonTempData = CommonTempDataType.ChildNodeSet;
|
||||
parameter.CommonTempData = CommonTempDataType.Result;
|
||||
base.Expression = item;
|
||||
base.Start();
|
||||
var methodCallExpressionArgs = new MethodCallExpressionArgs()
|
||||
|
@@ -45,7 +45,7 @@ namespace SqlSugar
|
||||
private void Result(ExpressionParameter parameter, ExpressionType nodeType)
|
||||
{
|
||||
BaseParameter.ChildExpression = base.Expression;
|
||||
parameter.CommonTempData = CommonTempDataType.ChildNodeSet;
|
||||
parameter.CommonTempData = CommonTempDataType.Result;
|
||||
if (nodeType == ExpressionType.Not)
|
||||
AppendNot(parameter.CommonTempData);
|
||||
base.Start();
|
||||
@@ -57,7 +57,8 @@ namespace SqlSugar
|
||||
private void Append(ExpressionParameter parameter, ExpressionType nodeType)
|
||||
{
|
||||
BaseParameter.ChildExpression = base.Expression;
|
||||
parameter.CommonTempData = CommonTempDataType.Default;
|
||||
this.IsLeft = parameter.IsLeft;
|
||||
parameter.CommonTempData = CommonTempDataType.Append;
|
||||
if (nodeType == ExpressionType.Not)
|
||||
AppendNot(parameter.CommonTempData);
|
||||
base.Start();
|
||||
|
Reference in New Issue
Block a user