1

私は問題に行き詰まり、どうすればこれを処理できるかという正しい方法や解決策が得られません。問題は、プロパティ ID をパラメーターとして渡す条件クエリを作成していることです。プロパティ ID の型は guid です。プロパティ ID に値がある場合は正常に動作しますが、null の場合はクラッシュします。

プロパティ ID に値がある場合、フィルター レコードはプロパティ ID に従って取得され、プロパティ ID が null の場合は、プロパティ ID が null のフィルター レコードが取得されるという要件があります。

このリンクを試してみましたNullable GUID

ただし、タイプの不一致例外である別の例外が発生します。

ここで私が使用しているNHibernateコード

 var invoiceList =
     Session.CreateCriteria<tARInvoice>("inv")
            .Add(Restrictions.Eq("inv.fPropertyID",
                                 propertyId == null ?  (object)DBNull.Value : propertyId.Value))   
            .List<tARInvoice>()

私は c# と NHibernate バージョン 3.1 を使用しています。

4

1 に答える 1

0

それは次のように単純でなければなりません

var invoiceList = Session.CreateCriteria<tARInvoice>()
    .Add(Restrictions.Eq("fPropertyID", propertyId)
    .List<tARInvoice>();

fPropertyID が型Guid?であり、単純なプロパティとしてマップされていると仮定します

于 2013-03-13T13:49:14.917 に答える