From: Michael D. <mik...@us...> - 2004-08-26 14:28:28
|
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> |