|
From: <fab...@us...> - 2009-02-20 19:48:13
|
Revision: 4089
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4089&view=rev
Author: fabiomaulo
Date: 2009-02-20 19:48:11 +0000 (Fri, 20 Feb 2009)
Log Message:
-----------
Fix NH-1679
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Criterion/CriterionUtil.cs
trunk/nhibernate/src/NHibernate/Criterion/PropertyProjection.cs
trunk/nhibernate/src/NHibernate/NHibernate.csproj
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Fixture.cs
Added Paths:
-----------
trunk/nhibernate/src/NHibernate/Criterion/IPropertyProjection.cs
Modified: trunk/nhibernate/src/NHibernate/Criterion/CriterionUtil.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Criterion/CriterionUtil.cs 2009-02-19 09:55:56 UTC (rev 4088)
+++ trunk/nhibernate/src/NHibernate/Criterion/CriterionUtil.cs 2009-02-20 19:48:11 UTC (rev 4089)
@@ -101,11 +101,13 @@
params object[] values)
{
List<TypedValue> types = new List<TypedValue>();
- if (projection == null)
+ var propertyProjection = projection as IPropertyProjection;
+ if (projection == null || propertyProjection != null)
{
+ var pn = propertyProjection != null ? propertyProjection.PropertyName : propertyName;
foreach (object value in values)
{
- TypedValue typedValue = criteriaQuery.GetTypedValue(criteria, propertyName, value);
+ TypedValue typedValue = criteriaQuery.GetTypedValue(criteria, pn, value);
types.Add(typedValue);
}
}
Added: trunk/nhibernate/src/NHibernate/Criterion/IPropertyProjection.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Criterion/IPropertyProjection.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Criterion/IPropertyProjection.cs 2009-02-20 19:48:11 UTC (rev 4089)
@@ -0,0 +1,7 @@
+namespace NHibernate.Criterion
+{
+ public interface IPropertyProjection
+ {
+ string PropertyName { get; }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Criterion/PropertyProjection.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Criterion/PropertyProjection.cs 2009-02-19 09:55:56 UTC (rev 4088)
+++ trunk/nhibernate/src/NHibernate/Criterion/PropertyProjection.cs 2009-02-20 19:48:11 UTC (rev 4089)
@@ -10,7 +10,7 @@
/// A property value, or grouped property value
/// </summary>
[Serializable]
- public class PropertyProjection : SimpleProjection
+ public class PropertyProjection : SimpleProjection, IPropertyProjection
{
private string propertyName;
private bool grouped;
Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-19 09:55:56 UTC (rev 4088)
+++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-20 19:48:11 UTC (rev 4089)
@@ -447,6 +447,7 @@
<Compile Include="Bytecode\HibernateByteCodeException.cs" />
<Compile Include="Bytecode\ProxyFactoryFactoryNotConfiguredException.cs" />
<Compile Include="Bytecode\UnableToLoadProxyFactoryFactoryException.cs" />
+ <Compile Include="Criterion\IPropertyProjection.cs" />
<Compile Include="Dialect\MsSql2008Dialect.cs" />
<Compile Include="Dialect\InformixDialect0940.cs" />
<Compile Include="Dialect\InformixDialect1000.cs" />
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Fixture.cs 2009-02-19 09:55:56 UTC (rev 4088)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Fixture.cs 2009-02-20 19:48:11 UTC (rev 4089)
@@ -10,13 +10,13 @@
[Test]
public void UsingExpression()
{
- TestAction(criteria => { criteria.Add(Expression.Eq("alias.BooleanData", true)); });
+ TestAction(criteria => criteria.Add(Restrictions.Eq("alias.BooleanData", true)));
}
- [Test,Ignore]
+ [Test]
public void UsingExpressionProjection()
{
- TestAction(criteria => { criteria.Add(Expression.Eq(Projections.Property("alias.BooleanData"), true)); });
+ TestAction(criteria => criteria.Add(Restrictions.Eq(Projections.Property("alias.BooleanData"), true)));
}
protected override void OnSetUp()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|