当前位置:  开发笔记 > 编程语言 > 正文

当有外键但引用的行不存在时,是否可以避免NHibernate.ObjectNotFoundException?

如何解决《当有外键但引用的行不存在时,是否可以避免NHibernate.ObjectNotFoundException?》经验,为你挑选了1个好方法。

我正在使用NHibernate从遗留数据库中提取一些数据,我发现有几种情况存在外键,但引用的行已被删除.

当我进行NHibernate映射时(使用Fluent NHibernate):

References(d => d.Group)
    .WithColumns("groupId", "dataset")
    .SetAttribute("lazy", "true");

Group在加载根对象时得到一个单元化代理,然后ObjectNotFoundException在我尝试使用它时得到.

如果我禁用延迟加载,我会ObjectNotFoundException在加载root时立即获得.

因此:有没有办法让NHibernate Group在加载root时使null?或者是否有可能以某种方式检查单元化代理,以查看它是否会成功加载行?



1> mookid8000..:

我在这里找到了解决方案- 我需要添加

.SetAttribute("not-found", "ignore");

到映射.


谢谢你的回答.我遇到了同样的问题.还要感谢拥有以Aphex Twin轨道命名的用户标识.顺便说一句,在我的FluentNH版本中,它是.NotFound.Ignore().
推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有