我们正在使用具有相当粗糙数据模型的遗留代码库。现在,我们有一个如下所示的对象映射:
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 的 Shelf 的情况下抛出异常,并在请求 ID 为 0 的 Shelf 时返回 null。
任何帮助都将是特殊的!