2013-08-26 2 views
0

내가 ServiceStack + OrmLite을 사용하고 있는데 나는 OrmLite이 DateTimeOffset으로 객체를 저장하는 몇 가지 문제가 있어요.ServiceStack + OrmLite 날짜 형식 문제

내가 (예 : ISO8601에 대한) 중립적 인 문화 형식으로 SQL 서버 DB에 저장하기 때문에 사용자가 자신의 문화를 변경 때 지금은 Conversion failed when converting date and/or time from character string.를 생성 있기 때문에 그것이 DB에 기록 어떻게에 영향을 미치지 않는 필요 문화 변환 문제로 인한 오류.

어떤 OrmLite 구성 옵션 또는이 문제를 피하기 위해 비슷한 뭔가가 있나요? datetimedatetimeoffset을 포함하여 SQL Server의

+0

일부 코드가 유용 할 것입니다. 그 때까지 https://groups.google.com/forum/#!topic/servicestack/sYRX5OaPMsk에서 문제를 해결하는 데 도움이 될 수 있습니다. – kunjee

답변

0

날짜/시간 유형, 어떤 문화 저장되지 않습니다. 그들은 문자열로 저장되지 않습니다. 내부적으로 이진 표현으로 저장됩니다.

C#에서 클래스는 DateTimeOffset 유형 속성을 사용하고, SQL Server의 테이블이 datetimeoffset 유형의 열을 사용하는 경우, 다음 문자열 (문화)의 사진을 입력해서는 안됩니다. 수동으로 SQL 문자열을 조작하는 대신 매개 변수를 사용하여 값을 인라인 경우

당신은 문자열을 얻을 수 있습니다. 그러나 ORM이 이러한 실수를 저지르는 것은 의심 스럽습니다.

또는 당신은 varchar 필드에 DateTimeOffset의 문자열 표현을 물건하려고?

게시자가하는 일을 볼 수 있도록 일부 코드를 게시하십시오.

+0

문제를 해결할 수 있었지만 OrmLite가 DateTimeOffset 개체에 대해 일종의 변환을 수행하는 것 같지 않습니다. 내 DB 필드는 DateTimeOffset (7)이고 POCO 선언은 DateTimeOffset이며 SQL 쿼리를 수동으로 작성하지 않았습니다. 방금 ​​POCO 필드를 DateTime으로 변경했는데 이제는 매력처럼 작동합니다. github에서 버그 보고서를 열어 볼 수도 있습니다. 그러나 시간 내 주셔서 감사합니다. – PizergSensing

+0

버그가있을 수 있으므로 예 - 문제를 열어주세요. –

+1

추가 조사를 한 결과, OrmLite가 DateTimeOffset 필드에 대해 SQL 쿼리를 제대로 작성하지 못하고있는 것으로 보입니다. – PizergSensing