クラスの public nullable プロパティ (datetime) があるため、fastmember を使用して問題が発生していますが、それを db に挿入しようとすると、列の値が null ではなく空の文字列になり、例外が発生します。列の値をnullにする方法についてのアイデアはありますか?
public class MyClass
{
public DateTime? MyDate {get;set;}
}
DataTable testTable = new DataTable();
using (var reader = ObjectReader.Create(myClassList))
{
testTable.Load(reader);
}
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ConnectionString))
{
SqlTransaction transaction = null;
connection.Open();
try
{
transaction = connection.BeginTransaction();
using (var sqlBulkCopy = new SqlBulkCopy(connection, SqlBulkCopyOptions.TableLock, transaction))
{
sqlBulkCopy.BulkCopyTimeout = 0;
sqlBulkCopy.BatchSize = batchSize;
sqlBulkCopy.DestinationTableName = "myTable";
for (var cols = 0; cols < testTable.Columns.Count; cols++)
{
sqlBulkCopy.ColumnMappings.Add(cols, cols);
}
sqlBulkCopy.WriteToServer(testTable);
}
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
}
releaseate が null の場合、常に null ではなく空白文字列としてテーブルに入れられますが、強制的に null にする方法はありますか? または、SQL 一括コピーで空の文字列を null として解釈しますか?