2017-05-23 1 views
0

dapper로 수행 한 모든 검색 결과에서이 workoutdate 필드에 대해 빈 값 (기본 Datetime 값)을 가져 오는 방법은 무엇입니까?Dapper가 datetime 필드를 기본값으로 사용합니다.

StringBuilder query = new StringBuilder(); 

query.Append("SELECT W.WorkoutId, W.Active, W.GymId, W.Spots, W.UserId, W.WorkoutDate, W.WorkoutStatusId FROM [Workout] W"); 

    public class Workout 
    { 
     public Guid WorkoutId { get; private set; } 
     public Guid UserId { get; set; } 
     public Guid? GymId { get; set; } 
     public int WorkoutStatusId { get; set; } 
     public int Spots { get; set; } 
     public bool Active { get; set; } 
     public DateTime WorkoutDate { get; set; } 
    } 
+2

실제로'WorkoutDate'는'datetime' 타입 컬럼입니까? 예를 들어,이 함수가'nvarchar '인 경우 datetime에 대한 캐스팅이 성공하지 못할 수 있습니다. 도움이 될 실제 Dapper 쿼리와 테이블 정의를 제공 할 수 있다면. 테이블 정의 @pcdev – pcdev

+0

:. 는 TABLE [dbo가] [운동] ( \t [WorkoutId] [고유 식별자] NULL NOT, \t [활성] [비트] NULL NOT, \t [GymId] [고유 식별자] NULL을 CREATE \t [스팟] [INT] NULL NOT, \t [사용자 아이디] 고유 식별자] NULL NOT, \t [WorkoutDate] DATETIME2 (7) NULL NOT, \t [WorkoutStatusId [INT] NULL NOT, –

+0

및 클래스 내 필드 : 공개 DateTime WorkoutDate {get; set;} –

답변

1

열은 datetime2입니다.

SqlMapper.AddTypeMap(typeof(DateTime), System.Data.DbType.DateTime2); 

대안은 다음과 같이 선택에 캐스팅하는 것입니다 :이 같은 방식 단정 한지도 열을 변경할 수 있습니다

SELECT CAST(W.WorkoutDate AS datetime) ... 

을 아니면 '돈 경우는 날짜에 열을 변경할 수 있습니다 datetime2의 추가 정밀도가 필요하지 않습니다.

+0

두 전략을 모두 시도했지만 둘 다 작동하지 않음 = ( –

관련 문제