Maaf, baru sadar saya harus memposting ini sebagai jawaban atas pertanyaan alih-alih hanya berkomentar... Tolong jangan menertawakan "orang baru!"
Melalui diskusi dan pengujian lebih lanjut, tampaknya masalah ini terkait dengan penggunaan ADO.NET dan NHibernate dari kolom DbType.Date untuk MS SQL 2008 dari tipe data DATE. Jika kode menggunakan SqlDbType.Date alih-alih DbType.Date, tidak ada masalah seperti itu yang akan terjadi dan semuanya akan berjalan seperti yang ditentukan.
Sementara penggunaan DbType.Date mungkin tampak lebih "portabel" untuk tipe database lain, hal itu menimbulkan masalah ini, karena ADO.NET DbType.Date memiliki batasan nilai minimum 1/1/1753.
Solusi untuk masalah ini adalah memberi tahu NHibernate bahwa tipe kolom adalah DATETIME2, yang juga mendukung nilai tanggal lebih awal dari 1/1/1753. Jika pemetaan NHibernate adalah:
<property name="TestDate" type="datetime2">
<column name="TestDate" sql-type="date" />
</property>
Kode berfungsi seperti yang diharapkan tanpa pengecualian.
Sayang sekali NHibernate tidak mengenalinya menggunakan dialek MsSql2008 dan menggunakan SqlDbTypes daripada DbTypes, tetapi solusi ini tampaknya berhasil untuk saat ini.
Untuk informasi lebih lanjut tentang aspek ADO.NET, lihat ADO.NET Masukkan Nilai Min ke SQL Server 2008 kolom Tanggal lumpuh . Terima kasih kepada @Graham Bunce atas bantuannya dalam hal ini.
Saya harap informasi ini membantu siapa saja yang mengalami masalah ini di masa depan.