public static string Column <Table>(this IOrmLiteDialectProvider dialect, Expression <Func <Table, object> > propertyExpression, bool prefixTable = false) { string propertyName = null; Expression expr = propertyExpression; if (expr is LambdaExpression lambda) { expr = lambda.Body; } if (expr.NodeType == ExpressionType.Convert && expr is UnaryExpression unary) { expr = unary.Operand; } if (expr is MemberExpression member) { propertyName = member.Member.Name; } if (propertyName == null) { propertyName = expr.ToPropertyInfo()?.Name; } if (propertyName != null) { return(dialect.Column <Table>(propertyName, prefixTable)); } throw new ArgumentException("Expected Lambda MemberExpression but received: " + propertyExpression.Name); }