Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Expression
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14868/NHibernate/Expression
Modified Files:
Expression.cs SQLExpression.cs
Log Message:
Modified SQLExpression so the user must specify a SqlString if there are
any parameters required.
Index: SQLExpression.cs
===================================================================
RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Expression/SQLExpression.cs,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** SQLExpression.cs 28 Mar 2004 06:05:09 -0000 1.6
--- SQLExpression.cs 26 Aug 2004 14:28:18 -0000 1.7
***************
*** 6,20 ****
using NHibernate.Util;
! namespace NHibernate.Expression {
!
/// <summary>
! /// SQLExpression
/// </summary>
! public class SQLExpression : Expression {
! private readonly string sql;
private readonly TypedValue[] typedValues;
! internal SQLExpression(string sql, object[] values, IType[] types)
{
this.sql = sql;
--- 6,25 ----
using NHibernate.Util;
! namespace NHibernate.Expression
! {
/// <summary>
! /// Creates a SQLExpression
/// </summary>
! /// <remarks>
! /// This allows for database specific Expressions at the cost of needing to
! /// write a correct <see cref="SqlString"/>.
! /// </remarks>
! public class SQLExpression : Expression
! {
! private readonly SqlString sql;
private readonly TypedValue[] typedValues;
! internal SQLExpression(SqlString sql, object[] values, IType[] types)
{
this.sql = sql;
***************
*** 29,33 ****
public override SqlString ToSqlString(ISessionFactoryImplementor factory, System.Type persistentClass, string alias)
{
! return new SqlString(StringHelper.Replace(sql, "$alias", alias));
}
--- 34,38 ----
public override SqlString ToSqlString(ISessionFactoryImplementor factory, System.Type persistentClass, string alias)
{
! return sql.Replace( "$alias", alias );
}
***************
*** 39,43 ****
public override string ToString()
{
! return sql;
}
}
--- 44,48 ----
public override string ToString()
{
! return sql.ToString();
}
}
Index: Expression.cs
===================================================================
RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Expression/Expression.cs,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** Expression.cs 2 Aug 2004 04:30:37 -0000 1.9
--- Expression.cs 26 Aug 2004 14:28:18 -0000 1.10
***************
*** 230,234 ****
/// <param name="types"></param>
/// <returns></returns>
! public static Expression Sql(string sql, object[] values, IType[] types)
{
return new SQLExpression(sql, values, types);
--- 230,234 ----
/// <param name="types"></param>
/// <returns></returns>
! public static Expression Sql(SqlString sql, object[] values, IType[] types)
{
return new SQLExpression(sql, values, types);
***************
*** 242,246 ****
/// <param name="type"></param>
/// <returns></returns>
! public static Expression Sql(string sql, object value, IType type)
{
return new SQLExpression(sql, new object[] { value }, new IType[] { type } );
--- 242,246 ----
/// <param name="type"></param>
/// <returns></returns>
! public static Expression Sql(SqlString sql, object value, IType type)
{
return new SQLExpression(sql, new object[] { value }, new IType[] { type } );
***************
*** 252,260 ****
/// <param name="sql"></param>
/// <returns></returns>
! public static Expression Sql(string sql)
{
return new SQLExpression(sql, NoObjects, NoTypes);
}
/// <summary>
--- 252,270 ----
/// <param name="sql"></param>
/// <returns></returns>
! public static Expression Sql(SqlString sql)
{
return new SQLExpression(sql, NoObjects, NoTypes);
}
+ /// <summary>
+ /// Apply a constraint expressed in SQL
+ /// </summary>
+ /// <param name="sql"></param>
+ /// <returns></returns>
+ public static Expression Sql(string sql)
+ {
+ return new SQLExpression(new SqlString(sql), NoObjects, NoTypes);
+ }
+
/// <summary>
|