From 6dfdbf9306759118e3d0e086e85df9f90d736624 Mon Sep 17 00:00:00 2001 From: Jakub Konecki Date: Mon, 6 Aug 2012 18:36:47 +0100 Subject: [PATCH] Added support for TimeSpan Fix for issue #70 (http://code.google.com/p/dapper-dot-net/issues/detail?id=70) and also related MS bug with DbType.Time (https://connect.microsoft.com/VisualStudio/feedback/details/381934/sqlparameter-dbtype-dbtype-time-sets-the-parameter-to-sqldbtype-datetime-instead-of-sqldbtype-time). --- Dapper/SqlMapper.cs | 11 ++++++++--- Tests/Tests.cs | 8 ++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Dapper/SqlMapper.cs b/Dapper/SqlMapper.cs index 7f918b37..693beb72 100644 --- a/Dapper/SqlMapper.cs +++ b/Dapper/SqlMapper.cs @@ -301,6 +301,7 @@ namespace Dapper typeMap[typeof(Guid)] = DbType.Guid; typeMap[typeof(DateTime)] = DbType.DateTime; typeMap[typeof(DateTimeOffset)] = DbType.DateTimeOffset; + typeMap[typeof(TimeSpan)] = DbType.Time; typeMap[typeof(byte[])] = DbType.Binary; typeMap[typeof(byte?)] = DbType.Byte; typeMap[typeof(sbyte?)] = DbType.SByte; @@ -318,6 +319,7 @@ namespace Dapper typeMap[typeof(Guid?)] = DbType.Guid; typeMap[typeof(DateTime?)] = DbType.DateTime; typeMap[typeof(DateTimeOffset?)] = DbType.DateTimeOffset; + typeMap[typeof(TimeSpan?)] = DbType.Time; typeMap[typeof(Object)] = DbType.Object; } @@ -1366,10 +1368,13 @@ this IDbConnection cnn, string sql, Func("select @ts", new { ts = TimeSpan.FromMinutes(42) }).First() + .IsEqualTo(TimeSpan.FromMinutes(42)); + } + public void TestStrings() { connection.Query(@"select 'a' a union select 'b'")