Optimized code

This commit is contained in:
sunkaixuan
2024-02-05 20:23:25 +08:00
parent 8e75f46fac
commit f6dd5de7f5
3 changed files with 16 additions and 13 deletions

View File

@@ -24,26 +24,29 @@ namespace SqlSugar
);
return conditionalExpression;
}
internal static bool IsOwsOne(ExpressionContext context, Expression member)
internal static bool IsOwnsOne(ExpressionContext context, Expression member)
{
var isOwsOne = false;
var isOwnsOne = false;
if (context?.SugarContext?.Context == null)
{
return false;
}
if (member is MemberExpression memberExp)
{
var name = memberExp?.Member?.Name;
if (memberExp.Expression is MemberExpression parentMemberExp)
if (memberExp?.Expression is MemberExpression parentMemberExp)
{
if (name != null && parentMemberExp.Expression is ParameterExpression)
{
var rootExp = (parentMemberExp.Expression as ParameterExpression);
if (name != null && parentMemberExp?.Expression is ParameterExpression rootExp)
{
var entityInfo = context?.SugarContext?.Context?.EntityMaintenance?.GetEntityInfo(rootExp.Type);
var navColumn = entityInfo.Columns.FirstOrDefault(it => it.PropertyName == name);
isOwsOne = navColumn?.ForOwnsOnePropertyInfo != null;
var navColumn = entityInfo?.Columns?.FirstOrDefault(it => it.PropertyName == name);
isOwnsOne = navColumn?.ForOwnsOnePropertyInfo != null;
}
}
}
return isOwsOne;
return isOwnsOne;
}
internal static EntityColumnInfo GetOwsOneColumnInfo(ExpressionContext context, Expression member)
internal static EntityColumnInfo GetOwnsOneColumnInfo(ExpressionContext context, Expression member)
{
EntityColumnInfo entityColumnInfo = new EntityColumnInfo();
if (member is MemberExpression memberExp)

View File

@@ -457,9 +457,9 @@ namespace SqlSugar
private void ResolveMemberValue(ExpressionParameter parameter, ExpressionParameter baseParameter, bool? isLeft, bool isSetTempData, MemberExpression expression)
{
if (ExpressionTool.IsOwsOne(this.Context, expression))
if (ExpressionTool.IsOwnsOne(this.Context, expression))
{
var column = ExpressionTool.GetOwsOneColumnInfo(this.Context, expression);
var column = ExpressionTool.GetOwnsOneColumnInfo(this.Context, expression);
var columnName = column.DbColumnName;
if (this.Context.IsJoin)
{

View File

@@ -2,7 +2,7 @@
<package >
<metadata>
<id>SqlSugarCore</id>
<version>5.1.4.141-preview03</version>
<version>5.1.4.141-preview05</version>
<authors>sunkaixuan</authors>
<owners>果糖大数据科技</owners>
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0.html</licenseUrl>