Matt kemungkinan besar berada di jalur yang benar. Anda telah menetapkan nilai default untuk kolom Anda - namun, itu hanya akan berlaku jika Anda benar-benar memasukkan sesuatu ke dalam tabel Anda di database.
Saat Anda melakukan tes unit, seperti yang Anda katakan, kemungkinan besar Anda menginisialisasi variabel DateTime ke sesuatu (atau tidak - maka itu akan menjadi DateTime.MinValue, yaitu 01/01/0001) dan kemudian Anda mengirimkannya ke SQL Server dan nilai ini berada di luar rentang yang valid untuk DATETIME di SQL Server (seperti yang dinyatakan dengan jelas oleh kesalahan).
Jadi yang perlu Anda lakukan adalah menambahkan baris ke pengujian unit .NET Anda untuk menginisialisasi variabel DateTime ke "DateTime.Today":
DateTime myDateTime = DateTime.Today
lalu masukkan ke SQL Server.
ATAU:Anda dapat mengubah pernyataan SQL INSERT Anda sehingga tidak memasukkan nilai untuk kolom itu - sepertinya sekarang, itu memang melakukan itu (dan mencoba memasukkan itu - untuk SQL Server - tanggal yang tidak valid ke dalam tabel). Jika Anda tidak menentukan kolom itu di INSERT Anda, maka kolom default getdate()
akan masuk dan memasukkan tanggal hari ini ke dalam kolom.
Marc