Search code examples
c#asp.netentity-framework-coreentity-framework-6dbfunctions

Migrating DBFunctions from Entity Framework 6 to Entity framework Core


I am migrating my .Net 6 Project from Entity framework 6 to Entity Framework Core and I need to replace the following code. How do I replace this Entity Framework 6 Sql TruncateTime Function with one that works with EF Core.

var result = db.Tickets
               .Where(x => DbFunctions.TruncateTime(x.DateTimeCreated) == statCalcDefinitionDateTime.Date)

Solution

  • As Svyatoslav Danyliv Said in the comments. Entity framework core now supports "DateTime.Date" so there is no longer a need for the "dbFunctions.TruncateTime()" function.

    Svyatoslav Danyliv also suggested I used a range in my where statement instead of the date, and I would agree. Blow is the new Entity Framework Core way of "DBFunctions.TruncateTime()"

    var result = db.Tickets
                   .Where(x => x.DateTimeCreated.Date == statCalcDefinitionDateTime.Date)
    

    Or alternatively you can use a date range

    var result = db.Tickets
                   .Where(x => 
                          x.DateTimeCreated >= statCalcDefinitionDateTime.Date && 
                          x.DateTimeCreated < statCalcDefinitionDateTime.Date.AddDays(1))
    

    NOTE: I also found the same solution HERE