0

私たちは、かなりラフなデータ モデルを持つレガシー コード ベースで作業しています。現在、次のようなオブジェクト マッピングがあります。

using FluentNHibernate.Mapping;
using Validation.Domain;

namespace Validation.DomainMaps
{
    public sealed class BookMap : SubclassMap<Book>
   {
        public BookMap()
        {
            Map(x => x.Genre);

            References(x => x.Shelf, "ShelfId")
                .Nullable()
                .Not.LazyLoad()
                .NotFound.Ignore()
                .Cascade.All()
                .Fetch.Join();
        }
    }
}

アプリケーションでは、棚のない本は ShelfId が 0 になります。Shelf テーブルには Id が 0 の行はなく、nhibernate に依存して.NotFound.Ignore()null を返します。これは後で確認して処理します。

これでここまでたどり着きましたが、Shelf テーブルにエントリがない 0 以外の ShelfId にアクセスしようとすると、例外をスローしようとしています。

理想的には、nhibernate は ID が 0 でないシェルフが見つからない場合にのみ例外をスローし、ID が 0 のシェルフを要求されたときに null を返します。

どんな助けでも例外的です!

4

1 に答える 1

0

これは完璧ではありませんが、この種のことをしたい人は、ここを見てください。

于 2011-08-03T18:47:12.407 に答える