我们正在使用遗留代码库,这个代码库有一个非常粗略的数据模型。现在,我们有一个如下所示的对象映射:
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只会在找不到具有非0 Id的Shelf并且在被要求提供Id为0的Shelf时返回null的情况下抛出异常。
任何帮助都是特殊的!