Commit 4326e0c4 authored by Marc Gravell's avatar Marc Gravell

Merge pull request #347 from perliedman/fix-udttype-when-null

Only set UdtTypeName when value isn't DBNull
parents 5b5dffdb d60182ee
...@@ -376,7 +376,7 @@ object ITypeHandler.Parse(Type destinationType, object value) ...@@ -376,7 +376,7 @@ object ITypeHandler.Parse(Type destinationType, object value)
void ITypeHandler.SetValue(IDbDataParameter parameter, object value) void ITypeHandler.SetValue(IDbDataParameter parameter, object value)
{ {
parameter.Value = SanitizeParameterValue(value); parameter.Value = SanitizeParameterValue(value);
if (parameter is System.Data.SqlClient.SqlParameter) if (parameter is System.Data.SqlClient.SqlParameter && !(value is DBNull))
{ {
((System.Data.SqlClient.SqlParameter)parameter).SqlDbType = SqlDbType.Udt; ((System.Data.SqlClient.SqlParameter)parameter).SqlDbType = SqlDbType.Udt;
((System.Data.SqlClient.SqlParameter)parameter).UdtTypeName = udtTypeName; ((System.Data.SqlClient.SqlParameter)parameter).UdtTypeName = udtTypeName;
......
...@@ -3504,6 +3504,23 @@ public void SqlGeography_SO25538154() ...@@ -3504,6 +3504,23 @@ public void SqlGeography_SO25538154()
row.Geometry.IsNotNull(); row.Geometry.IsNotNull();
} }
public void NullableSqlGeometry()
{
Dapper.SqlMapper.ResetTypeHandlers();
connection.Execute("create table #SqlNullableGeo (id int, geometry geometry null)");
var obj = new HazSqlGeo
{
Id = 1,
Geometry = null
};
connection.Execute("insert #SqlNullableGeo(id, geometry) values (@Id, @Geometry)", obj);
var row = connection.Query<HazSqlGeo>("select * from #SqlNullableGeo where id=1").SingleOrDefault();
row.IsNotNull();
row.Id.IsEqualTo(1);
row.Geometry.IsNull();
}
public void SqlHierarchyId_SO18888911() public void SqlHierarchyId_SO18888911()
{ {
Dapper.SqlMapper.ResetTypeHandlers(); Dapper.SqlMapper.ResetTypeHandlers();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment