Skip to content

Commit 8cd649c

Browse files
committed
Linq - add generators for DateTimeOffset properties (NH-3209)
1 parent ac9a45f commit 8cd649c

File tree

2 files changed

+29
-26
lines changed

2 files changed

+29
-26
lines changed

src/NHibernate/Linq/Functions/DateTimePropertiesHqlGenerator.cs

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,34 @@
77

88
namespace NHibernate.Linq.Functions
99
{
10-
public class DateTimePropertiesHqlGenerator : IHqlGeneratorForProperty
10+
public class DateTimePropertiesHqlGenerator : BaseHqlGeneratorForProperty
1111
{
12-
private readonly MemberInfo[] supportedProperties;
13-
1412
public DateTimePropertiesHqlGenerator()
1513
{
16-
supportedProperties = new[]
17-
{
18-
ReflectionHelper.GetProperty((DateTime x) => x.Year),
19-
ReflectionHelper.GetProperty((DateTime x) => x.Month),
20-
ReflectionHelper.GetProperty((DateTime x) => x.Day),
21-
ReflectionHelper.GetProperty((DateTime x) => x.Hour),
22-
ReflectionHelper.GetProperty((DateTime x) => x.Minute),
23-
ReflectionHelper.GetProperty((DateTime x) => x.Second),
24-
ReflectionHelper.GetProperty((DateTime x) => x.Date),
25-
};
26-
}
27-
28-
public IEnumerable<MemberInfo> SupportedProperties
29-
{
30-
get
31-
{
32-
return supportedProperties;
33-
}
14+
SupportedProperties = new[]
15+
{
16+
ReflectionHelper.GetProperty((DateTime x) => x.Year),
17+
ReflectionHelper.GetProperty((DateTime x) => x.Month),
18+
ReflectionHelper.GetProperty((DateTime x) => x.Day),
19+
ReflectionHelper.GetProperty((DateTime x) => x.Hour),
20+
ReflectionHelper.GetProperty((DateTime x) => x.Minute),
21+
ReflectionHelper.GetProperty((DateTime x) => x.Second),
22+
ReflectionHelper.GetProperty((DateTime x) => x.Date),
23+
24+
ReflectionHelper.GetProperty((DateTimeOffset x) => x.Year),
25+
ReflectionHelper.GetProperty((DateTimeOffset x) => x.Month),
26+
ReflectionHelper.GetProperty((DateTimeOffset x) => x.Day),
27+
ReflectionHelper.GetProperty((DateTimeOffset x) => x.Hour),
28+
ReflectionHelper.GetProperty((DateTimeOffset x) => x.Minute),
29+
ReflectionHelper.GetProperty((DateTimeOffset x) => x.Second),
30+
ReflectionHelper.GetProperty((DateTimeOffset x) => x.Date),
31+
};
3432
}
3533

36-
public virtual HqlTreeNode BuildHql(MemberInfo member, Expression expression, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
34+
public override HqlTreeNode BuildHql(MemberInfo member, Expression expression, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
3735
{
3836
return treeBuilder.MethodCall(member.Name.ToLowerInvariant(),
39-
visitor.Visit(expression).AsExpression());
37+
visitor.Visit(expression).AsExpression());
4038
}
4139
}
4240
}

src/NHibernate/Linq/Functions/LinqToHqlGeneratorsRegistryExtensions.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using System.Linq;
32

43
namespace NHibernate.Linq.Functions
54
{
@@ -15,7 +14,10 @@ public static void Merge(this ILinqToHqlGeneratorsRegistry registry, IHqlGenerat
1514
{
1615
throw new ArgumentNullException("generator");
1716
}
18-
Array.ForEach(generator.SupportedMethods.ToArray(), method=> registry.RegisterGenerator(method, generator));
17+
foreach (var method in generator.SupportedMethods)
18+
{
19+
registry.RegisterGenerator(method, generator);
20+
}
1921
}
2022

2123
public static void Merge(this ILinqToHqlGeneratorsRegistry registry, IHqlGeneratorForProperty generator)
@@ -28,7 +30,10 @@ public static void Merge(this ILinqToHqlGeneratorsRegistry registry, IHqlGenerat
2830
{
2931
throw new ArgumentNullException("generator");
3032
}
31-
Array.ForEach(generator.SupportedProperties.ToArray(), property => registry.RegisterGenerator(property, generator));
33+
foreach (var property in generator.SupportedProperties)
34+
{
35+
registry.RegisterGenerator(property, generator);
36+
}
3237
}
3338
}
3439
}

0 commit comments

Comments
 (0)