diff --git a/SqlMapper.cs b/SqlMapper.cs index 5fef6de7..faa46f93 100644 --- a/SqlMapper.cs +++ b/SqlMapper.cs @@ -269,13 +269,19 @@ namespace SqlMapper var list = info.Val as IEnumerable; var count = 0; + bool isString = info.Val is IEnumerable; if (list != null) { foreach (var item in list) { count++; - cmd.Parameters.Add(new SqlParameter("@" + info.Name + count, item)); + var sqlParam = new SqlParameter("@" + info.Name + count, item); + if (isString) + { + sqlParam.Size = 4000; + } + cmd.Parameters.Add(sqlParam); } cmd.CommandText = cmd.CommandText.Replace("@" + info.Name, diff --git a/Tests.cs b/Tests.cs index 1490bc5d..0b8b073f 100644 --- a/Tests.cs +++ b/Tests.cs @@ -89,15 +89,19 @@ namespace SqlMapper public int IgnoredProperty { get { return 1; } } } - public void TestIntSupportsNull() + public void TestStrongType() { - var dog = connection.ExecuteMapperQuery("select Age = @Age", new { Age = (int?)null }); + var guid = Guid.NewGuid(); + var dog = connection.ExecuteMapperQuery("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid }); dog.Count() .IsEquals(1); dog.First().Age .IsNull(); + + dog.First().Id + .IsEquals(guid); } public void TestExpando()