2011-09-24 3 views
0

Entity Framework에 익숙하지 않습니다. 내 SQL Server 데이터베이스에서 날짜/시간 값을 24 시간 형식으로 저장하고 응용 프로그램에서 시간 형식을 A.M./P.M으로 사용하기 때문에 datetime 값을 비교하는 데 문제가 있습니다. 체재. 난 필드를 구문 분석하려고했지만 오류 메시지가 나타납니다.Entity Framework에서 datetime 24hs와 AM/PM 형식 비교

지정한 유형의 멤버 인 'Date'는 LINQ to Entities에서 지원되지 않습니다. 만 초기화, 법인 회원, 엔티티 탐색 속성이 지원됩니다>

다음

내가 뭘하려 :. (발견 된 기록이있는 경우이 true 또는 false를 반환)

<pre><code> 
    return !(DB.Eventos.Where(
       x => 
       (x.Fecha_inicio_evento.Date >= eventos.Fecha_inicio_evento.Date 
       && 
       x.Fecha_inicio_evento.TimeOfDay >= eventos.Fecha_inicio_evento.TimeOfDay 
       && 
       x.Fecha_inicio_evento.Date <= eventos.Fecha_fin_evento.Date 
       && 
       x.Fecha_inicio_evento.TimeOfDay <= eventos.Fecha_fin_evento.TimeOfDay) 
       || 
       (x.Fecha_fin_evento.Date >= eventos.Fecha_inicio_evento.Date 
       && 
       x.Fecha_fin_evento.TimeOfDay >= eventos.Fecha_fin_evento.TimeOfDay 
       && 
       x.Fecha_fin_evento.Date <= eventos.Fecha_fin_evento.Date 
       && 
       x.Fecha_fin_evento.TimeOfDay <= eventos.Fecha_fin_evento.TimeOfDay 
       )).Any()); 
</code></pre> 

당신이 어떤을 아십니까 그것을 수행하는 방법?

답변

0

Database 또는 .Net은 날짜 형식을 저장하지 않습니다. 형식은 ToString과 같은 메소드에 대한 설명 일뿐입니다. 따라서 비교는 운영자와 표준 방식으로 수행 할 수 있습니다. 오류가 발생하여 Linqentity framework으로 sql에 대한 쿼리를 연결하면 단순히 Date이 지원되지 않습니다.

비교를 2 부분으로 나누면 날짜를 비교하고 싶을 수 있습니다. Id .Date.TimeofDay과 비교해도 결과를 변경해서는 안되지만 그럴 수 있습니다. Chech 결과가 Fecha_inicio_evento = 2011-01-02 01:01:01 및 Fecha_inicio_evento = 2011-01-01 02:01:01