使用Ignore.NotFound延迟加载NHibernate

Cal*_*lin 6 .net nhibernate fluent-nhibernate

我有一个像Candidate对象的波纹管的映射:

References(x => x.Country).Column("CountryId").NotFound().Ignore()
Run Code Online (Sandbox Code Playgroud)

这里的问题是,如果我选择*Candidates我会为它们中的每一个获得额外的选择,这不是一件好事,所以我拉出了NotFound().Ignore()位,但现在以下代码因ObjectNotFoundException异常而失败:

if (entity.Country != null)
{
       bos.CountryName = entity.Country.Name;
}
Run Code Online (Sandbox Code Playgroud)

当我比较郡时,有没有办法强制Hhibernate做选择!= null?

谢谢,

Col*_*e W 5

当你指定.NotFound().Ignore()时,这会强制加载实体,并且不能用.LazyLoad()覆盖.NHibernate这样做是因为它必须确保关系存在或不存在,因为您不依赖于数据库来强制执行此操作.

我的建议是捕获ObjectNotFoundException或修复您的数据,以便您没有这些不一致.

这是一篇关于此的文章:http: //opensource.atlassian.com/projects/hibernate/browse/HHH-2753