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

Commit 540cdce

Browse files
committed
Change FirstMatchingField to return a tuple
1 parent ffda2d5 commit 540cdce

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

src/ServiceStack.OrmLite/Expressions/SqlExpression.Join.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,6 @@ private SqlExpression<T> InternalJoin(string joinType,
123123

124124
FromExpression = fromExpr + sbJoin;
125125

126-
if (tableDefs.Count == 0)
127-
tableDefs.Add(modelDef);
128126
if (!tableDefs.Contains(sourceDef))
129127
tableDefs.Add(sourceDef);
130128
if (!tableDefs.Contains(targetDef))
@@ -236,25 +234,25 @@ public virtual SqlExpression<T> Or<Source, Target>(Expression<Func<Source, Targe
236234
return this;
237235
}
238236

239-
public string QuoteFirstField(string fieldName)
237+
public Tuple<ModelDefinition,FieldDefinition> FirstMatchingField(string fieldName)
240238
{
241239
foreach (var tableDef in tableDefs)
242240
{
243241
var firstField = tableDef.FieldDefinitions.FirstOrDefault(x => x.Name == fieldName);
244242
if (firstField != null)
245243
{
246-
return DialectProvider.GetQuotedColumnName(tableDef, firstField);
244+
return Tuple.Create(tableDef, firstField);
247245
}
248246
}
249-
//Fallback to {Table}{Field} property convention
247+
//Fallback to fully qualified '{Table}{Field}' property convention
250248
foreach (var tableDef in tableDefs)
251249
{
252-
var firstField = tableDef.FieldDefinitions.FirstOrDefault(x =>
250+
var firstField = tableDef.FieldDefinitions.FirstOrDefault(x =>
253251
tableDef.Name + x.Name == fieldName);
254252

255253
if (firstField != null)
256254
{
257-
return DialectProvider.GetQuotedColumnName(tableDef, firstField) + " as " + fieldName;
255+
return Tuple.Create(tableDef, firstField);
258256
}
259257
}
260258
return null;

src/ServiceStack.OrmLite/Expressions/SqlExpression.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public SqlExpression(IOrmLiteDialectProvider dialectProvider)
4141
PrefixFieldWithTableName = false;
4242
WhereStatementWithoutWhereString = false;
4343
DialectProvider = dialectProvider;
44+
tableDefs.Add(modelDef);
4445
}
4546

4647
public SqlExpression<T> Clone()

0 commit comments

Comments
 (0)