2013-06-17 1 views
0

가능한지 확실하지 않지만 MS SQL 데이터베이스에서 레코드를 필터링하는 데 날짜 만 사용하도록 반나 씩 시도했습니다. 이 질문에. 나는이 모든처럼 내 엔터티에 대한 기록을 얻을 수 있도록 내가 저장소 패턴을 사용하고 있습니다 :datetime 열을 포함하는 LINQ-to-Entities 쿼리에서 시간을 0으로 설정하십시오.

var rows = DocumentsRepository.All(); 

Documents 유형의 날짜의 열 Date이있는 테이블을, 나는 데이터베이스에 시간을 유지해야하지만 필터링 준비를 할 때 나는 날짜 만 사용하고 가능한 경우 시간, 분, 초 및 밀리 초를 0으로 설정하려고합니다.

LINQ 내에서 가능하며 어떻게 할 수 있습니까?

+0

그래서 전체 시간 소인을 저장하고 싶지만 날짜에만 쿼리 하시겠습니까? 맞습니까? –

+0

글쎄요, 언젠가는 날짜 만 쓸 수 있기를 원합니다. 그래, 네가 필요로하는 일을 할 수있을만큼 날짜 만 지키는 것이 좋을 것 같아. – Leron

+0

[EntityFunctions.TruncateTime (datetimeObj)] (http://msdn.microsoft.com/en-us/library/dd395596.aspx) – scheien

답변

1

리파지토리에서 EF를 사용하는 경우 EntityFunctions.TruncateTime(datetimeObj)이 트릭을한다고 생각합니다.

IQueryable<Entity> query = query.Where(x => EntityFunctions.TruncateTime(x.CreatedAt) == DateTime.Today); 

    var someList = query.ToList(); 
+0

답변 해 주셔서 감사합니다. 설명서에서 정확히'(x.CreatedAt) == DateTime.Now' 부분이 무엇을하는지 이해할 수 없습니까? – Leron

+0

코드가 작동한다고 생각하지 않습니다. 'DateTime.Today'라는 뜻이 아닌가요? –

+0

@RoyDictus 예, 맞아요. 내가 편집 할게. :-) – scheien

관련 문제