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

Commit d9c72dc

Browse files
committed
Use table alias is specified when selecting all fields of a type
1 parent 6cfe502 commit d9c72dc

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/ServiceStack.OrmLite/Expressions/SqlExpression.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2031,7 +2031,12 @@ protected virtual object VisitParameter(ParameterExpression p)
20312031
{
20322032
var paramModelDef = p.Type.GetModelDefinition();
20332033
if (paramModelDef != null)
2034-
return new SelectList(DialectProvider.GetColumnNames(paramModelDef, paramModelDef.ModelName));
2034+
{
2035+
var tablePrefix = paramModelDef == ModelDef && TableAlias != null
2036+
? TableAlias
2037+
: paramModelDef.ModelName;
2038+
return new SelectList(DialectProvider.GetColumnNames(paramModelDef, tablePrefix));
2039+
}
20352040

20362041
return p.Name;
20372042
}

tests/ServiceStack.OrmLite.Tests/Expression/SqlExpressionTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -665,10 +665,10 @@ public void Can_select_subselect()
665665
db.Insert(new LetterFrequency { Letter = letter }, selectIdentity: true));
666666

667667
var q = db.From<LetterFrequency>(db.TableAlias("x"));
668-
q.Where(x => x.Letter == Sql.Custom(q.Column<LetterFrequency>(c => c.Letter, true)));
668+
q.Where(x => x.Letter == Sql.TableAlias(x.Letter, "obj"));
669669
var subSql = q.Select(Sql.Count("*")).ToSelectStatement();
670670

671-
var rows = db.Select<Dictionary<string, object>>(db.From<LetterFrequency>()
671+
var rows = db.Select<Dictionary<string, object>>(db.From<LetterFrequency>(db.TableAlias("obj"))
672672
.Where(x => x.Letter == "C")
673673
.Select(x => new {
674674
x,

0 commit comments

Comments
 (0)