복붙노트

[SQL] LINQ하려면 SQL에만 시간을 비교

SQL

LINQ하려면 SQL에만 시간을 비교

어떻게 다음을받지 않고 단지 날짜 시간 개체의 시간을 비교합니까

오류:

An exception of type 'System.NotSupportedException' occurred in mscorlib.dll but was not handled in user code Additional information: The specified type member 'TimeOfDay' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

내 코드 :

var date = DateTime.Parse(query.DueTime);
entities = entities.Where(r => r.DueTime.TimeOfDay.Equals(date.TimeOfDay));

해결법

  1. ==============================

    1.이 답이다!

    이 답이다!

    var date = DateTime.Parse(query.DueTime);
    var time = date.TimeOfDay;
    entities = entities.Where(r => DbFunctions.CreateTime(r.DueTime.Hour, r.DueTime.Minute,  r.DueTime.Second) == time);
    
  2. ==============================

    2.당신은 기능 EntityFunctions.TruncateTime (TIME)를 사용하여 시도?

    당신은 기능 EntityFunctions.TruncateTime (TIME)를 사용하여 시도?

    다음과 같이 갈 것이다 :

    var date = DateTime.Parse(query.DueTime);
    entities = entities.Where(r => EntityFunctions.TruncateTime(r.DueTime) == EntityFunctions.TruncateTime(date));
    

    도움이 되었기를 바랍니다!

  3. from https://stackoverflow.com/questions/21287730/linq-to-sql-compare-time-only by cc-by-sa and MIT license