New tests.
[mono.git] / mcs / class / System.Data.Linq / src / DbLinq.SqlServer / SqlServerVendor.cs
index 7b884ee522758535860a4d4f9c55ad8b8134a2b3..de092b37faddc60644e3093802c5b8b9faebc07c 100644 (file)
@@ -62,6 +62,13 @@ namespace DbLinq.SqlServer
         protected readonly SqlServerSqlProvider sqlProvider = new SqlServerSqlProvider();\r
         public override ISqlProvider SqlProvider { get { return sqlProvider; } }\r
 \r
+        protected override void AppendServer(StringBuilder connectionString, string host)\r
+        {\r
+            // As per http://www.connectionstrings.com/sql-server, \r
+            // port numbers are separated from host names via comma\r
+            AppendConnectionString(connectionString, ConnectionStringServer, host.Replace(':', ','));\r
+        }\r
+\r
         //NOTE: for Oracle, we want to consider 'Array Binding'\r
         //http://download-west.oracle.com/docs/html/A96160_01/features.htm#1049674\r
 \r
@@ -91,6 +98,11 @@ namespace DbLinq.SqlServer
                 var dc = new DataColumn();\r
                 dc.ColumnName = column.MappedName;\r
                 dc.DataType = column.Member.GetMemberType();\r
+                if (dc.DataType.IsNullable())\r
+                {\r
+                    dc.AllowDBNull  = true;\r
+                    dc.DataType     = dc.DataType.GetNullableType();\r
+                }\r
                 dt.Columns.Add(dc);\r
             }\r
 \r
@@ -105,7 +117,7 @@ namespace DbLinq.SqlServer
                     //if (pair.Value.IsDbGenerated)\r
                     //    continue; //don't assign IDENTITY col\r
                     object value = pair.Member.GetMemberValue(row);\r
-                    dr[pair.MappedName] = value;\r
+                    dr[pair.MappedName] = value ?? DBNull.Value;\r
                 }\r
                 //dr[1\r
                 dt.Rows.Add(dr);\r