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

Commit de59c32

Browse files
author
Oleg Nadymov
committed
Fix for visiting constants inside VisitInSqlExpressionList
1 parent da5eced commit de59c32

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/ServiceStack.OrmLite/Expressions/SqlExpression.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1907,7 +1907,7 @@ protected virtual List<object> VisitInSqlExpressionList(ReadOnlyCollection<Expre
19071907
}
19081908
else if (e.NodeType == ExpressionType.MemberAccess)
19091909
{
1910-
list.Add(GetMemberExpression(e as MemberExpression));
1910+
list.Add(VisitMemberAccess(e as MemberExpression));
19111911
}
19121912
else
19131913
{
@@ -1980,7 +1980,7 @@ protected virtual string GetQuotedColumnName(ModelDefinition tableDef, string me
19801980
? fd.FieldName
19811981
: memberName;
19821982

1983-
var includePrefix = PrefixFieldWithTableName && fd.CustomSelect == null;
1983+
var includePrefix = PrefixFieldWithTableName && fd?.CustomSelect == null;
19841984
return includePrefix
19851985
? DialectProvider.GetQuotedColumnName(tableDef, fieldName)
19861986
: DialectProvider.GetQuotedColumnName(fieldName);

tests/ServiceStack.OrmLite.Tests/ExpressionVisitorTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,18 @@ public void Can_Where_using_Bool_Constant_Conditional_filter()
552552
Assert.That(target.Count, Is.EqualTo(1));
553553
}
554554

555+
[Test]
556+
public void Can_Where_using_SqlIn_filter()
557+
{
558+
var subQ = Db.From<TestType>().Where(x=>x.NullableIntCol == 10).Select(x=>x.Id);
559+
var q = Db.From<TestType>();
560+
q.PrefixFieldWithTableName = true;
561+
q.Where(x=>Sql.In(x.Id, subQ));
562+
563+
var target = Db.Select(q);
564+
Assert.That(target.Count, Is.EqualTo(1));
565+
}
566+
555567
private int MethodReturningInt(int val)
556568
{
557569
return val;

0 commit comments

Comments
 (0)