2 instantiations of ExpressionConverter
System.Data.Entity (2)
System\Data\Objects\ELinq\CompiledELinqQueryState.cs (1)
220return new ExpressionConverter(funcletizer, lambda.Body);
System\Data\Objects\ELinq\ELinqQueryState.cs (1)
282return new ExpressionConverter(funcletizer, _expression);
220 references to ExpressionConverter
System.Data.Entity (220)
System\Data\Objects\ELinq\CompiledELinqQueryState.cs (3)
78ExpressionConverter converter = this.CreateExpressionConverter(); 110ExpressionConverter converter = this.CreateExpressionConverter(); 215protected override ExpressionConverter CreateExpressionConverter()
System\Data\Objects\ELinq\ELinqQueryState.cs (3)
88ExpressionConverter converter = this.CreateExpressionConverter(); 125ExpressionConverter converter = this.CreateExpressionConverter(); 279protected virtual ExpressionConverter CreateExpressionConverter()
System\Data\Objects\ELinq\ExpressionConverter.cs (4)
297ExpressionConverter.DescribeClrType(metadata.ClrType))); 865input = input.Property(ExpressionConverter.GroupColumnName); 870input = input.Property(ExpressionConverter.EntityCollectionElementsColumnName); 1353private DbExpression TranslateFunctionIntoLike(MethodCallExpression call, bool insertPercentAtStart, bool insertPercentAtEnd, Func<ExpressionConverter, MethodCallExpression, DbExpression, DbExpression, DbExpression> defaultTranslator)
System\Data\Objects\ELinq\Funcletizer.cs (1)
261return ExpressionConverter.CanFuncletizePropertyInfo((PropertyInfo)member.Member);
System\Data\Objects\ELinq\MethodCallTranslator.cs (131)
34protected override CqtExpression TypedTranslate(ExpressionConverter parent, MethodCallExpression linq) 278ExpressionConverter converter, 325internal abstract CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call); 379internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 432internal override DbExpression Translate(ExpressionConverter parent, MethodCallExpression call) 468internal override DbExpression Translate(ExpressionConverter parent, MethodCallExpression call) 504internal override DbExpression Translate(ExpressionConverter parent, MethodCallExpression call) 521internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 599internal DbExpression TranslateFunctionCall(ExpressionConverter parent, MethodCallExpression call, EdmFunctionAttribute functionAttribute) 631private DbExpression NormalizeAllSetSources(ExpressionConverter parent, DbExpression argumentExpr) 728private DbExpression ValidateReturnType(DbExpression result, TypeUsage actualReturnType, ExpressionConverter parent, MethodCallExpression call, Type clrReturnType, bool isElementOfCollection) 857internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 889internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 919yield return typeof(EntityFunctions).GetMethod(ExpressionConverter.AsUnicode, BindingFlags.Public | BindingFlags.Static, null, new Type[] { typeof(string) }, null); 930yield return typeof(EntityFunctions).GetMethod(ExpressionConverter.AsNonUnicode, BindingFlags.Public | BindingFlags.Static, null, new Type[] { typeof(string) }, null); 945internal override DbExpression Translate(ExpressionConverter parent, MethodCallExpression call) 965internal override DbExpression Translate(ExpressionConverter parent, MethodCallExpression call) 989internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 996private static DbExpression CreateDefaultTranslation(ExpressionConverter parent, MethodCallExpression call, DbExpression patternExpression, DbExpression inputExpression) 998DbFunctionExpression indexOfExpression = parent.CreateCanonicalFunction(ExpressionConverter.IndexOf, call, patternExpression, inputExpression); 1015internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1019DbFunctionExpression indexOfExpression = parent.TranslateIntoCanonicalFunction(ExpressionConverter.IndexOf, call, call.Arguments[0], call.Object); 1041internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1048private static DbExpression CreateDefaultTranslation(ExpressionConverter parent, MethodCallExpression call, DbExpression patternExpression, DbExpression inputExpression) 1050DbExpression indexOfExpression = parent.CreateCanonicalFunction(ExpressionConverter.IndexOf, call, patternExpression, inputExpression) 1072internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1079private static DbExpression CreateDefaultTranslation(ExpressionConverter parent, MethodCallExpression call, DbExpression patternExpression, DbExpression inputExpression) 1081DbFunctionExpression reversePatternExpression = parent.CreateCanonicalFunction(ExpressionConverter.Reverse, call, patternExpression); 1082DbFunctionExpression reverseInputExpression = parent.CreateCanonicalFunction(ExpressionConverter.Reverse, call, inputExpression); 1084DbExpression indexOfExpression = parent.CreateCanonicalFunction(ExpressionConverter.IndexOf, call, reversePatternExpression, reverseInputExpression) 1104internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1116length = parent.CreateCanonicalFunction(ExpressionConverter.Length, call, target) 1124CqtExpression substringExpression = parent.CreateCanonicalFunction(ExpressionConverter.Substring, call, target, fromIndex, length); 1143internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1152parent.CreateCanonicalFunction(ExpressionConverter.Substring, call, 1174parent.CreateCanonicalFunction(ExpressionConverter.Length, call, thisString) 1179parent.CreateCanonicalFunction(ExpressionConverter.Substring, call, 1185result = parent.CreateCanonicalFunction(ExpressionConverter.Concat, call, result, secondSubstring); 1222internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1230parent.CreateCanonicalFunction(ExpressionConverter.Substring, call, 1237parent.CreateCanonicalFunction(ExpressionConverter.Substring, call, 1240parent.CreateCanonicalFunction(ExpressionConverter.Length, call, thisString) 1245CqtExpression result = parent.CreateCanonicalFunction(ExpressionConverter.Concat, call, 1246parent.CreateCanonicalFunction(ExpressionConverter.Concat, call, 1265internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1275parent.CreateCanonicalFunction(ExpressionConverter.Length, call, value) 1298internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1306result = parent.CreateCanonicalFunction(ExpressionConverter.Concat, call, 1325internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1361: base(GetMethods(), ExpressionConverter.Trim) { } 1371: base(GetMethods(), ExpressionConverter.LTrim) { } 1381: base(GetMethods(), ExpressionConverter.RTrim) { } 1422internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1439yield return GetMethod(stringsType, "Len", ExpressionConverter.Length, new Type[] { typeof(string) }); 1440yield return GetMethod(stringsType, "Mid", ExpressionConverter.Substring, new Type[] { typeof(string), typeof(int), typeof(int) }); 1441yield return GetMethod(stringsType, "UCase", ExpressionConverter.ToUpper, new Type[] { typeof(string) }); 1442yield return GetMethod(stringsType, "LCase", ExpressionConverter.ToLower, new Type[] { typeof(string) }); 1456internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1475s_supportedIntervals.Add(ExpressionConverter.Year); 1476s_supportedIntervals.Add(ExpressionConverter.Month); 1477s_supportedIntervals.Add(ExpressionConverter.Day); 1478s_supportedIntervals.Add(ExpressionConverter.Hour); 1479s_supportedIntervals.Add(ExpressionConverter.Minute); 1480s_supportedIntervals.Add(ExpressionConverter.Second); 1497internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1526internal virtual CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call, SequenceMethod sequenceMethod) 1530internal abstract CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call); 1539protected override CqtExpression TranslateUnary(ExpressionConverter parent, CqtExpression operand, MethodCallExpression call) 1551protected abstract CqtExpression TranslatePagingOperator(ExpressionConverter parent, CqtExpression operand, CqtExpression count); 1556protected override CqtExpression TranslatePagingOperator(ExpressionConverter parent, CqtExpression operand, CqtExpression count) 1564protected override CqtExpression TranslatePagingOperator(ExpressionConverter parent, CqtExpression operand, CqtExpression count) 1572internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1659protected CqtExpression TranslateLeft(ExpressionConverter parent, LinqExpression expr) 1663protected virtual CqtExpression TranslateRight(ExpressionConverter parent, LinqExpression expr) 1667internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1686protected abstract CqtExpression TranslateBinary(ExpressionConverter parent, CqtExpression left, CqtExpression right); 1691protected override CqtExpression TranslateBinary(ExpressionConverter parent, CqtExpression left, CqtExpression right) 1699protected override CqtExpression TranslateBinary(ExpressionConverter parent, CqtExpression left, CqtExpression right) 1707protected override CqtExpression TranslateBinary(ExpressionConverter parent, CqtExpression left, CqtExpression right) 1715protected override CqtExpression TranslateBinary(ExpressionConverter parent, CqtExpression left, CqtExpression right) 1719protected override CqtExpression TranslateRight(ExpressionConverter parent, LinqExpression expr) 1745internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 1786protected virtual TypeUsage GetReturnType(ExpressionConverter parent, MethodCallExpression call) 1795protected virtual CqtExpression WrapCollectionOperand(ExpressionConverter parent, CqtExpression operand, 1809protected virtual CqtExpression WrapNonCollectionOperand(ExpressionConverter parent, CqtExpression operand, 1820protected virtual EdmFunction FindFunction(ExpressionConverter parent, MethodCallExpression call, 1861protected override TypeUsage GetReturnType(ExpressionConverter parent, MethodCallExpression call) 1904protected override TypeUsage GetReturnType(ExpressionConverter parent, MethodCallExpression call) 1978protected override CqtExpression WrapCollectionOperand(ExpressionConverter parent, CqtExpression operand, TypeUsage returnType) 1985protected override CqtExpression WrapNonCollectionOperand(ExpressionConverter parent, CqtExpression operand, TypeUsage returnType) 1995protected override EdmFunction FindFunction(ExpressionConverter parent, MethodCallExpression call, 2021internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2038protected abstract CqtExpression TranslateUnary(ExpressionConverter parent, CqtExpression operand, MethodCallExpression call); 2043protected override CqtExpression TranslateUnary(ExpressionConverter parent, CqtExpression operand, MethodCallExpression call) 2061protected override CqtExpression TranslateUnary(ExpressionConverter parent, CqtExpression operand, 2085protected override CqtExpression TranslateUnary(ExpressionConverter parent, CqtExpression operand, 2094protected override CqtExpression TranslateUnary(ExpressionConverter parent, CqtExpression operand, 2104internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2113protected CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call, out CqtExpression source, out DbExpressionBinding sourceBinding, out CqtExpression lambda) 2126protected abstract CqtExpression TranslateOneLambda(ExpressionConverter parent, DbExpressionBinding sourceBinding, CqtExpression lambda); 2131protected override CqtExpression TranslateOneLambda(ExpressionConverter parent, DbExpressionBinding sourceBinding, CqtExpression lambda) 2139protected override CqtExpression TranslateOneLambda(ExpressionConverter parent, DbExpressionBinding sourceBinding, CqtExpression lambda) 2147protected override CqtExpression TranslateOneLambda(ExpressionConverter parent, DbExpressionBinding sourceBinding, CqtExpression lambda) 2155internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2164protected override CqtExpression TranslateOneLambda(ExpressionConverter parent, DbExpressionBinding sourceBinding, CqtExpression lambda) 2175internal override DbExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2211private static DbExpression GetDefaultValue(ExpressionConverter parent, Type resultType) 2227internal override DbExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2231private static DbExpression TranslateContainsHelper(ExpressionConverter parent, CqtExpression left, IEnumerable<DbExpression> rightList, EqualsPattern pattern, Type leftType, Type rightType) 2241internal static DbExpression TranslateContains(ExpressionConverter parent, Expression sourceExpression, Expression valueExpression) 2293protected virtual CqtExpression LimitResult(ExpressionConverter parent, CqtExpression expression) 2298protected override CqtExpression TranslateUnary(ExpressionConverter parent, CqtExpression operand, MethodCallExpression call) 2322internal static CqtExpression AddDefaultCase(ExpressionConverter parent, CqtExpression element, Type elementType) 2348protected override CqtExpression TranslateUnary(ExpressionConverter parent, CqtExpression operand, MethodCallExpression call) 2365protected override CqtExpression TranslateUnary(ExpressionConverter parent, CqtExpression operand, MethodCallExpression call) 2374protected override CqtExpression LimitResult(ExpressionConverter parent, CqtExpression expression) 2395protected virtual CqtExpression RestrictResult(ExpressionConverter parent, CqtExpression expression) 2401internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2431protected override CqtExpression TranslateOneLambda(ExpressionConverter parent, DbExpressionBinding sourceBinding, CqtExpression lambda) 2441internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2458internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2465protected override CqtExpression RestrictResult(ExpressionConverter parent, CqtExpression expression) 2485internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2703protected override CqtExpression TranslateOneLambda(ExpressionConverter parent, DbExpressionBinding sourceBinding, CqtExpression lambda) 2715internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2741internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call, SequenceMethod sequenceMethod) 2806private static DbExpression ProcessResultSelector(ExpressionConverter parent, MethodCallExpression call, SequenceMethod sequenceMethod, CqtExpression topLevelProject, DbExpression result) 2838internal override DbExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2850internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call) 2985protected override CqtExpression TranslateOneLambda(ExpressionConverter parent, DbExpressionBinding sourceBinding, CqtExpression lambda) 3012internal override CqtExpression Translate(ExpressionConverter parent, MethodCallExpression call)
System\Data\Objects\ELinq\SpatialMethodCallTranslator.cs (1)
227internal override DbExpression Translate(ExpressionConverter parent, MethodCallExpression call)
System\Data\Objects\ELinq\SpatialPropertyTranslator.cs (1)
148internal override DbExpression Translate(ExpressionConverter parent, MemberExpression call)
System\Data\Objects\ELinq\Translator.cs (76)
37internal abstract DbExpression Translate(ExpressionConverter parent, Expression linq); 51internal override DbExpression Translate(ExpressionConverter parent, Expression linq) 55protected abstract DbExpression TypedTranslate(ExpressionConverter parent, T_Linq linq); 62protected override DbExpression TypedTranslate(ExpressionConverter parent, ConstantExpression linq) 161protected override DbExpression TypedTranslate(ExpressionConverter parent, MemberExpression linq) 283private static bool TryResolveAsProperty(ExpressionConverter parent, 329if (name == ExpressionConverter.KeyColumnName) 339if (property.Property.Name == ExpressionConverter.GroupColumnName && // only know how to unwrap the group 343propertyExpression = property.Instance.Property(ExpressionConverter.KeyColumnName); 353private static DbExpression TranslateNavigationProperty(ExpressionConverter parent, MemberInfo clrMember, DbExpression instance, NavigationProperty navProp) 371ExpressionConverter.EntityCollectionOwnerColumnName, instance)); 373ExpressionConverter.EntityCollectionElementsColumnName, propertyExpression)); 381private static DbExpression TranslateCount(ExpressionConverter parent, Type sequenceElementType, Expression sequence) 446internal override DbExpression Translate(ExpressionConverter parent, MemberExpression call) 523internal abstract DbExpression Translate(ExpressionConverter parent, MemberExpression call); 558internal override DbExpression Translate(ExpressionConverter parent, MemberExpression call) 573yield return GetProperty(typeof(DateTime), "Now", BindingFlags.Public | BindingFlags.Static, ExpressionConverter.CurrentDateTime); 574yield return GetProperty(typeof(DateTime), "UtcNow", BindingFlags.Public | BindingFlags.Static, ExpressionConverter.CurrentUtcDateTime); 575yield return GetProperty(typeof(DateTimeOffset), "Now", BindingFlags.Public | BindingFlags.Static, ExpressionConverter.CurrentDateTimeOffset); 577yield return GetProperty(typeof(TimeSpan), "Hours", BindingFlags.Public | BindingFlags.Instance, ExpressionConverter.Hour); 578yield return GetProperty(typeof(TimeSpan), "Minutes", BindingFlags.Public | BindingFlags.Instance, ExpressionConverter.Minute); 579yield return GetProperty(typeof(TimeSpan), "Seconds", BindingFlags.Public | BindingFlags.Instance, ExpressionConverter.Second); 580yield return GetProperty(typeof(TimeSpan), "Milliseconds", BindingFlags.Public | BindingFlags.Instance, ExpressionConverter.Millisecond); 595internal override DbExpression Translate(ExpressionConverter parent, MemberExpression call) 626internal override DbExpression Translate(ExpressionConverter parent, MemberExpression call) 628return parent.TranslateIntoCanonicalFunction(ExpressionConverter.CurrentDateTime, call); 639return typeof(EntityCollection<>).GetProperty(ExpressionConverter.s_entityCollectionCountPropertyName, BindingFlags.Public | BindingFlags.Instance); 644internal override DbExpression Translate(ExpressionConverter parent, MemberExpression call) 659return typeof(Nullable<>).GetProperty(ExpressionConverter.s_nullableHasValuePropertyName, BindingFlags.Public | BindingFlags.Instance); 664internal override DbExpression Translate(ExpressionConverter parent, MemberExpression call) 679return typeof(Nullable<>).GetProperty(ExpressionConverter.s_nullableValuePropertyName, BindingFlags.Public | BindingFlags.Instance); 684internal override DbExpression Translate(ExpressionConverter parent, MemberExpression call) 698protected override DbExpression TypedTranslate(ExpressionConverter parent, ParameterExpression linq) 709protected override DbExpression TypedTranslate(ExpressionConverter parent, NewExpression linq) 760protected override DbExpression TypedTranslate(ExpressionConverter parent, NewArrayExpression linq) 793protected override DbExpression TypedTranslate(ExpressionConverter parent, ListInitExpression linq) 814protected override DbExpression TypedTranslate(ExpressionConverter parent, MemberInitExpression linq) 870protected override DbExpression TypedTranslate(ExpressionConverter parent, ConditionalExpression linq) 887internal override DbExpression Translate(ExpressionConverter parent, Expression linq) 898internal override DbExpression Translate(ExpressionConverter parent, Expression linq) 918protected override DbExpression TypedTranslate(ExpressionConverter parent, System.Linq.Expressions.BinaryExpression linq) 922protected abstract DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq); 928protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 951protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 960protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 969protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 978protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 987protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 996protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 1005protected override DbExpression TypedTranslate(ExpressionConverter parent, System.Linq.Expressions.BinaryExpression linq) 1030private static DbExpression CreateIsNullExpression(ExpressionConverter parent, Expression input) 1064protected override DbExpression TypedTranslate(ExpressionConverter parent, System.Linq.Expressions.BinaryExpression linq) 1079protected override DbExpression TypedTranslate(ExpressionConverter parent, TypeBinaryExpression linq) 1094protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 1100return parent.CreateCanonicalFunction(ExpressionConverter.Concat, linq, left, right); 1112protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 1121protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 1130protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 1139protected override DbExpression TranslateBinary(ExpressionConverter parent, DbExpression left, DbExpression right, BinaryExpression linq) 1148protected override DbExpression TranslateUnary(ExpressionConverter parent, System.Linq.Expressions.UnaryExpression unary, DbExpression operand) 1157protected override DbExpression TranslateUnary(ExpressionConverter parent, UnaryExpression unary, DbExpression operand) 1176protected override DbExpression TypedTranslate(ExpressionConverter parent, System.Linq.Expressions.BinaryExpression linq) 1190protected abstract DbExpression TranslateIntoLogicExpression(ExpressionConverter parent, System.Linq.Expressions.BinaryExpression linq, DbExpression left, DbExpression right); 1195: base(ExpressionType.And, ExpressionConverter.BitwiseAnd) { } 1196protected override DbExpression TranslateIntoLogicExpression(ExpressionConverter parent, System.Linq.Expressions.BinaryExpression linq, DbExpression left, DbExpression right) 1204: base(ExpressionType.Or, ExpressionConverter.BitwiseOr) { } 1205protected override DbExpression TranslateIntoLogicExpression(ExpressionConverter parent, System.Linq.Expressions.BinaryExpression linq, DbExpression left, DbExpression right) 1213: base(ExpressionType.ExclusiveOr, ExpressionConverter.BitwiseXor) { } 1214protected override DbExpression TranslateIntoLogicExpression(ExpressionConverter parent, System.Linq.Expressions.BinaryExpression linq, DbExpression left, DbExpression right) 1227protected override DbExpression TypedTranslate(ExpressionConverter parent, System.Linq.Expressions.UnaryExpression linq) 1234return parent.CreateCanonicalFunction(ExpressionConverter.BitwiseNot, linq, operand); 1245protected override DbExpression TypedTranslate(ExpressionConverter parent, System.Linq.Expressions.UnaryExpression linq) 1249protected abstract DbExpression TranslateUnary(ExpressionConverter parent, System.Linq.Expressions.UnaryExpression unary, DbExpression operand); 1255protected override DbExpression TranslateUnary(ExpressionConverter parent, System.Linq.Expressions.UnaryExpression unary, DbExpression operand) 1266protected override DbExpression TranslateUnary(ExpressionConverter parent, System.Linq.Expressions.UnaryExpression unary, DbExpression operand) 1278protected override DbExpression TranslateUnary(ExpressionConverter parent, System.Linq.Expressions.UnaryExpression unary, DbExpression operand)