This repository was archived by the owner on Dec 24, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +14
-4
lines changed
src/ServiceStack.OrmLite/Expressions Expand file tree Collapse file tree 1 file changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -832,17 +832,27 @@ protected virtual object VisitMemberAccess(MemberExpression m)
832
832
if ( m . Expression != null
833
833
&& ( m . Expression . NodeType == ExpressionType . Parameter || m . Expression . NodeType == ExpressionType . Convert ) )
834
834
{
835
- var propertyInfo = m . Member as PropertyInfo ;
835
+ var propertyInfo = ( PropertyInfo ) m . Member ;
836
+
837
+ var modelType = propertyInfo . DeclaringType ;
838
+ if ( m . Expression . NodeType == ExpressionType . Convert )
839
+ {
840
+ var unaryExpr = m . Expression as UnaryExpression ;
841
+ if ( unaryExpr != null )
842
+ {
843
+ modelType = unaryExpr . Operand . Type ;
844
+ }
845
+ }
836
846
837
847
if ( propertyInfo . PropertyType . IsEnum )
838
848
return new EnumMemberAccess (
839
849
( PrefixFieldWithTableName
840
- ? DialectProvider . GetQuotedTableName ( propertyInfo . DeclaringType . GetModelDefinition ( ) . ModelName ) + "."
850
+ ? DialectProvider . GetQuotedTableName ( modelType . GetModelDefinition ( ) . ModelName ) + "."
841
851
: "" )
842
852
+ GetQuotedColumnName ( m . Member . Name ) , propertyInfo . PropertyType ) ;
843
853
844
- return new PartialSqlString ( ( PrefixFieldWithTableName
845
- ? DialectProvider . GetQuotedTableName ( propertyInfo . DeclaringType . GetModelDefinition ( ) . ModelName ) + "."
854
+ return new PartialSqlString ( ( PrefixFieldWithTableName
855
+ ? DialectProvider . GetQuotedTableName ( modelType . GetModelDefinition ( ) . ModelName ) + "."
846
856
: "" )
847
857
+ GetQuotedColumnName ( m . Member . Name ) ) ;
848
858
}
You can’t perform that action at this time.
0 commit comments