private SqlExpression ExtractParameter(SqlExpression expr) { var clrType = expr.ClrType; if (expr.ClrType.IsValueType && !TypeSystem.IsNullableType(expr.ClrType)) { clrType = typeof(Nullable <>).MakeGenericType(new[] { expr.ClrType }); } externals.Add(expr); var pName = sqlIdentity.ParameterPrefix + "x" + (parameters.Count + 1); var item = new SqlParameter(clrType, expr.SqlType, pName, expr.SourceExpression); parameters.Add(item); return(item); }
private static bool IsNullableValue(SqlMember m) { return(TypeSystem.IsNullableType(m.Expression.ClrType) && (m.Member.Name == "Value")); }