Browse Source

Update .net core project

pull/19/head
sunkaixuan 2 years ago
parent
commit
e541e699dc
  1. 6
      Src/Asp.NetCore2/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs
  2. 8
      Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs
  3. 17
      Src/Asp.NetCore2/SqlSugar/Utilities/PropertyCallAdapterProvider.cs

6
Src/Asp.NetCore2/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs

@ -319,6 +319,12 @@ namespace SqlSugar
{ {
this.Context.CurrentConnectionConfig.ConfigureExternalServices.EntityService(property, column); this.Context.CurrentConnectionConfig.ConfigureExternalServices.EntityService(property, column);
} }
if (column.PropertyInfo.DeclaringType != null
&& column.PropertyInfo.DeclaringType != result.Type
&&result.Columns.Any(x=>x.PropertyName==column.PropertyName))
{
continue;
}
result.Columns.Add(column); result.Columns.Add(column);
} }
} }

8
Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs

@ -37,7 +37,7 @@ namespace SqlSugar
} }
else else
{ {
InSubGroupBy(expression); InSubGroupBy(expression, operatorValue=="<>"?"NOT":"");
} }
return; return;
} }
@ -123,7 +123,7 @@ namespace SqlSugar
} }
base.Context.Result.Append($" {leftSql} in ({rightSql}) "); base.Context.Result.Append($" {leftSql} in ({rightSql}) ");
} }
private void InSubGroupBy(BinaryExpression expression) private void InSubGroupBy(BinaryExpression expression,string not)
{ {
var leftSql = GetNewExpressionValue(expression.Left); var leftSql = GetNewExpressionValue(expression.Left);
var rightExpression = expression.Right as MethodCallExpression; var rightExpression = expression.Right as MethodCallExpression;
@ -139,12 +139,12 @@ namespace SqlSugar
var p = (leftExp as MemberExpression); var p = (leftExp as MemberExpression);
this.Context.SingleTableNameSubqueryShortName=p.Expression.ToString(); this.Context.SingleTableNameSubqueryShortName=p.Expression.ToString();
} }
base.Context.Result.Append($" {leftSql} in ({rightSql}) "); base.Context.Result.Append($" {leftSql} {not} in ({rightSql}) ");
} }
private bool IsGroupSubquery(Expression rightExpression, string operatorValue) private bool IsGroupSubquery(Expression rightExpression, string operatorValue)
{ {
if (operatorValue != "=") if (operatorValue != "="&& operatorValue != "<>")
{ {
return false; return false;
} }

17
Src/Asp.NetCore2/SqlSugar/Utilities/PropertyCallAdapterProvider.cs

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Reflection; using System.Reflection;
namespace SqlSugar namespace SqlSugar
@ -33,9 +34,19 @@ namespace SqlSugar
IPropertyCallAdapter<TThis> instance; IPropertyCallAdapter<TThis> instance;
if (!_instances.TryGetValue(forPropertyName, out instance)) if (!_instances.TryGetValue(forPropertyName, out instance))
{ {
var property = typeof(TThis).GetProperty( PropertyInfo property = null;
forPropertyName, var propertys = typeof(TThis).GetProperties(
BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.Where(it=>it.Name== forPropertyName);
if (propertys.Count() == 1)
{
property = propertys.First();
}
else
{
property = propertys.First();
}
MethodInfo getMethod; MethodInfo getMethod;
Delegate getterInvocation = null; Delegate getterInvocation = null;

Loading…
Cancel
Save