2016-08-25 6 views
0

저는 고객의 SQL 테이블에서 일부 데이터를 가져 오기 위해 엔티티를 사용하고 있으며 날짜를 기준으로 필터링하려고합니다. 고객은 각 행의 해당 월을 YYYYMM 형식의 6 자리 문자열로 저장했습니다. (나는 DATETIME2에 열 유형을 변경할 수 없기 때문에)이 문제를 해결하려면 내 시도는 달을 나타내는 DATETIME2 열을 생성하려면 다음을 수행하는 SQL보기를 만들 수있다 :엔티티 모든 DateTimes를 1 월 1 일로 변환합니다.

CONVERT(datetime2, MON.Month + '01') AS CoveredMonth 

다음의 내부. NET에서, 나는 2016 년 1 월 1 일과 2017 년 1 월 1 일을 나타내는 두 개의 DateTime 객체 인 yearStart와 yearEnd와 내가 찾고있는 특정 직원을 가지고있다.

IList<MonthlyRecord> monthlyRecords = m_LTContext.MonthlyRecords 
    .Where(r => r.EmployeeID == employee.ID && r.CoveredMonth >= yearStart && r.CoveredMonth < yearEnd) 
    .ToList<MonthlyRecord>(); 

내가 레코드의 예상 를 참조 monthlyRecords에 반환되는 것을 확인하기 위해 브레이크 포인트를 배치 할 때 :이 열을 필터링 할 시도하는 다음과 같은 코드가 있습니다. 그러나 각 레코드는 CoveredMonth이 2016 년 1 월 1 일로 설정되어 있습니다. SQL에서 동일한 쿼리를 실행하면 카운트가 다시이되지만 적절한 날짜는 다음과 같습니다. Jan 1 '16, Feb 1 '16,

보기에 비표준 인 엔티티 매핑 속성에 문제가 있습니까? 내 마음 속에는 몇 가지 해킹이 있지만이 문제를 "올바르게"해결하고 싶습니다.

답변

0

보기 - View는 EmployeeID를 기본 키로 사용하고 MonthlyRecordID는 사용하지 않았습니다.

관련 문제