Update .net core project

This commit is contained in:
sunkaixuan 2022-06-24 15:31:41 +08:00
parent 793cc9e396
commit e541e699dc
3 changed files with 24 additions and 7 deletions

View File

@ -319,6 +319,12 @@ namespace SqlSugar
{
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);
}
}

View File

@ -37,7 +37,7 @@ namespace SqlSugar
}
else
{
InSubGroupBy(expression);
InSubGroupBy(expression, operatorValue=="<>"?"NOT":"");
}
return;
}
@ -123,7 +123,7 @@ namespace SqlSugar
}
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 rightExpression = expression.Right as MethodCallExpression;
@ -139,12 +139,12 @@ namespace SqlSugar
var p = (leftExp as MemberExpression);
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)
{
if (operatorValue != "=")
if (operatorValue != "="&& operatorValue != "<>")
{
return false;
}

View File

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