Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit e3abfd1

Browse files
committed
Use correct alias in joins
1 parent 7cb18fc commit e3abfd1

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

src/ServiceStack.OrmLite/Expressions/SqlExpression.cs

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -869,17 +869,12 @@ protected virtual object VisitMemberAccess(MemberExpression m)
869869
}
870870
}
871871

872+
var tableDef = modelType.GetModelDefinition();
872873
if (propertyInfo.PropertyType.IsEnum)
873874
return new EnumMemberAccess(
874-
(PrefixFieldWithTableName
875-
? DialectProvider.GetQuotedTableName(modelType.GetModelDefinition().ModelName) + "."
876-
: "")
877-
+ GetQuotedColumnName(m.Member.Name), propertyInfo.PropertyType);
878-
879-
return new PartialSqlString((PrefixFieldWithTableName
880-
? DialectProvider.GetQuotedTableName(modelType.GetModelDefinition().ModelName) + "."
881-
: "")
882-
+ GetQuotedColumnName(m.Member.Name));
875+
GetQuotedColumnName(tableDef, m.Member.Name), propertyInfo.PropertyType);
876+
877+
return new PartialSqlString(GetQuotedColumnName(tableDef, m.Member.Name));
883878
}
884879

885880
var member = Expression.Convert(m, typeof(object));
@@ -1064,15 +1059,18 @@ protected virtual string BindOperant(ExpressionType e)
10641059
}
10651060
}
10661061

1067-
protected virtual string GetQuotedColumnName(string memberName)
1062+
protected virtual string GetQuotedColumnName(ModelDefinition tableDef, string memberName)
10681063
{
10691064
if (useFieldName)
10701065
{
1071-
var fd = modelDef.FieldDefinitions.FirstOrDefault(x => x.Name == memberName);
1072-
var fn = fd != null
1066+
var fd = tableDef.FieldDefinitions.FirstOrDefault(x => x.Name == memberName);
1067+
var fieldName = fd != null
10731068
? fd.FieldName
10741069
: memberName;
1075-
return DialectProvider.GetQuotedColumnName(fn);
1070+
1071+
return PrefixFieldWithTableName
1072+
? DialectProvider.GetQuotedColumnName(tableDef.ModelName, fieldName)
1073+
: DialectProvider.GetQuotedColumnName(fieldName);
10761074
}
10771075
return memberName;
10781076
}

src/ServiceStack.OrmLite/OrmLiteDialectProviderExtensions.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,20 @@ public static string GetQuotedColumnName(this IOrmLiteDialectProvider dialect,
3333
return dialect.GetQuotedColumnName(fieldDef.FieldName);
3434
}
3535

36-
public static string GetQuotedColumnName(this IOrmLiteDialectProvider dialect,
36+
public static string GetQuotedColumnName(this IOrmLiteDialectProvider dialect,
3737
ModelDefinition modelDef, FieldDefinition fieldDef)
3838
{
3939
return dialect.GetQuotedTableName(modelDef.ModelName) +
4040
"." +
4141
dialect.GetQuotedColumnName(fieldDef.FieldName);
4242
}
43+
44+
public static string GetQuotedColumnName(this IOrmLiteDialectProvider dialect,
45+
string tableName, string fieldName)
46+
{
47+
return dialect.GetQuotedTableName(tableName) +
48+
"." +
49+
dialect.GetQuotedColumnName(fieldName);
50+
}
4351
}
4452
}

0 commit comments

Comments
 (0)