diff --git a/README.md b/README.md
index 696d240..988df2f 100644
--- a/README.md
+++ b/README.md
@@ -213,6 +213,9 @@ await this.Db.RaceResult
```
## Version History
+* 7.1.0 (August 12, 2023)
+ * Added support for `LocalDateTime.Date` property - [#35](/../../issues/35)
+ * Added support for `OffsetDateTime.Date` property
* 7.0.0 (November 9, 2022)
* Initial release supporting EF Core 7.0.0
* 7.0.0-rc.1.22426.7 (September 25, 2022)
diff --git a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/LocalDateTimeQueryTests.cs b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/LocalDateTimeQueryTests.cs
index 9079d89..db34033 100644
--- a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/LocalDateTimeQueryTests.cs
+++ b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/LocalDateTimeQueryTests.cs
@@ -156,6 +156,18 @@ public async Task LocalDateTime_PlusNanoseconds()
Assert.Equal(6, raceResults.Count);
}
+ [Fact]
+ public async Task LocalDateTime_Date()
+ {
+ var raceResults = await this.Db.Race.Where(r => r.ScheduledStart.Date >= new LocalDate(2019, 7, 1)).ToListAsync();
+
+ Assert.Equal(
+ condense(@$"{RaceSelectStatement} WHERE CAST([r].[ScheduledStart] AS date) >= '2019-07-01'"),
+ condense(this.Db.Sql));
+
+ Assert.Equal(6, raceResults.Count);
+ }
+
[Fact]
public async Task LocalDateTime_DatePart_Year()
{
diff --git a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/OffsetDateTimeQueryTests.cs b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/OffsetDateTimeQueryTests.cs
index 1f2c12c..1426540 100644
--- a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/OffsetDateTimeQueryTests.cs
+++ b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.Tests/OffsetDateTimeQueryTests.cs
@@ -109,6 +109,18 @@ public async Task OffsetDateTime_PlusMilliseconds()
Assert.Single(raceResults);
}
+ [Fact]
+ public async Task OffsetDateTime_Date()
+ {
+ var raceResults = await this.Db.RaceResult.Where(r => r.StartTimeOffset.Date >= new LocalDate(2019, 7, 1)).ToListAsync();
+
+ Assert.Equal(
+ condense(@$"{RaceResultSelectStatement} WHERE CAST([r].[StartTimeOffset] AS date) >= '2019-07-01'"),
+ condense(this.Db.Sql));
+
+ Assert.Equal(6, raceResults.Count);
+ }
+
[Fact]
public async Task OffsetDateTime_DatePart_Year()
{
diff --git a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/Query/ExpressionTranslators/BaseNodaTimeMemberTranslator.cs b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/Query/ExpressionTranslators/BaseNodaTimeMemberTranslator.cs
index 5e73dae..16c225f 100644
--- a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/Query/ExpressionTranslators/BaseNodaTimeMemberTranslator.cs
+++ b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/Query/ExpressionTranslators/BaseNodaTimeMemberTranslator.cs
@@ -2,6 +2,7 @@
using Microsoft.EntityFrameworkCore.Diagnostics;
using Microsoft.EntityFrameworkCore.Query;
using Microsoft.EntityFrameworkCore.Query.SqlExpressions;
+using NodaTime;
using System;
using System.Collections.Generic;
using System.Reflection;
@@ -37,6 +38,10 @@ public SqlExpression Translate(SqlExpression instance, MemberInfo member, Type r
null,
returnType);
}
+ else if (member.Name == nameof(LocalDateTime.Date) && returnType == typeof(LocalDate))
+ {
+ return _sqlExpressionFactory.Convert(instance, typeof(LocalDate));
+ }
}
return null;
diff --git a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.csproj b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.csproj
index cc5aa19..fce1021 100644
--- a/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.csproj
+++ b/src/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime/SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime.csproj
@@ -13,7 +13,7 @@
https://github.com/StevenRasmussen/EFCore.SqlServer.NodaTime
git
Entity Framework Core;entity-framework-core;EF;Data;O/RM;EntityFrameworkCore;EFCore;Noda;NodaTime;Noda Time
- 7.0.0.0
+ 7.1.0.0