私はNHibernate 2.0.1.4000
現在のすべての .NET 3.5 SP1 プロジェクトで使用してきましたが、他のクエリ (Query API または Criteria API のいずれかを使用) で問題はありませんでしたが、いくつかの新しいビジネス ロジックによって、この特定のプロジェクトで新しいクエリが必要であることが示されました。特定の null プロパティ (DateTime 型) を持つレコードを単一のテーブルから取得する必要があるアプリケーションのデータベース。
このタイプのクエリに等しくない制限を使用することはできませんが、代わりに IsNull 制限を使用できることがわかっているため、この単純なクエリは「値を null にすることはできません!」を生成します。実行時の例外。私は詳細な DEBUG モードの log4net ログ ファイルを確認しましたが、まだ解決していません。また、テーブルのクラスで、チェックしているプロパティが null 許容プロパティ (DateTime?) であることを確認して、ここでは発生していない、レコードの更新などを強制することによって発生する可能性のある問題...
ここにクエリがありますが、複雑なことは何もありません.MaxResultsの追加制限を使用して/使用せずに問題を解決しようとしましたが、結果を収集する前に例外がスローされます:
ICriteria criteria = session.GetISession().CreateCriteria(typeof (Order)).Add(NHibernate.Criterion.Restrictions.IsNull("ShippedOn")).SetMaxResults(10);
IList<Order> entityList = criteria.List<Order>();
これを解決するのに役立つ可能性のあるより多くの情報へのアイデアやポインタはありますか? 代わりに HQL を使用してみましたが、同じ問題があります...特定の null プロパティを持つレコードを返すことに関して、ここで何か不足していますか?