データベースでNHibernateを使用してオブジェクトを永続化します
App
オブジェクトにはプロパティが定義されています。
public virtual DateTime ReleaseDate { get; set; }
mappingClass で:
Map(x => x.ReleaseDate).Not.Nullable();
sqlServer 2008 では、その dataTypedateTime
は nullable であり、nullable ではありません。
初めてエラーなしでデータベースに保存します。しかし、アプリ情報を更新した後、私は遭遇しましたSqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
しかし、アプリのリリース日は有効な dateTime で2/16/2014 2:21:58 AM
あり、null ではありません。
なぜこの例外が発生するのか混乱していますか?
ist<App> apps = session.QueryOver<Data.Model.App>()
.List()
.ToList();
.
.
.
.
for (int i = 0; i < apps.Count(); i++)
{
App appWithOldInfo = apps[i];
using (ITransaction transaction = session.BeginTransaction())
{
try
{
//updating app info
appWithOldInfo = UpdateAppInfo(appWithOldInfo, appWithNewInfo);
session.Update(appWithOldInfo);
transaction.Commit();
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
スクリーンショットを参照してください。