using System.Data;\r
using System.Data.Linq.Mapping;\r
\r
+using DbLinq.Data.Linq;\r
+using DbLinq.Data.Linq.SqlClient;\r
using DbLinq.Util;\r
using DbLinq.Vendor;\r
+\r
#if MONO_STRICT\r
-using System.Data.Linq.SqlClient;\r
using DataContext = System.Data.Linq.DataContext;\r
-using ITable = System.Data.Linq.ITable;\r
-using DataLinq = System.Data.Linq;\r
+using DataLinq = System.Data.Linq;\r
+using ITable = System.Data.Linq.ITable;\r
+using System.Data.Linq.SqlClient;\r
#else\r
-using DbLinq.Data.Linq.SqlClient;\r
using DataContext = DbLinq.Data.Linq.DataContext;\r
-using ITable = DbLinq.Data.Linq.ITable;\r
-using DataLinq = DbLinq.Data.Linq;\r
+using DataLinq = DbLinq.Data.Linq;\r
+using ITable = DbLinq.Data.Linq.ITable;\r
+using DbLinq.Data.Linq.SqlClient;\r
#endif\r
\r
namespace DbLinq.SqlServer\r
{\r
[Vendor(typeof(SqlServerProvider), typeof(Sql2000Provider), typeof(Sql2005Provider))]\r
-#if MONO_STRICT\r
- internal\r
-#else\r
+#if !MONO_STRICT\r
public \r
#endif\r
class SqlServerVendor : Vendor.Implementation.Vendor\r
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
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
//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
{\r
throw new NotImplementedException();\r
}\r
-\r
- override protected TypeToLoadData GetProviderTypeName()\r
- {\r
- return new TypeToLoadData\r
- {\r
- assemblyName = "System.Data.DLL",\r
- className = "SqlConnection",\r
- };\r
- }\r
}\r
}
\ No newline at end of file