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

nHibernate,不存在具有给定标识符的行

如何解决《nHibernate,不存在具有给定标识符的行》经验,为你挑选了3个好方法。

我有一个映射的方式.


  
    
      
    
    
  

现在在数据库中,mdm_field表中的field_id有时具有相关key_field表中不存在的值,因此它基本上是破坏了引用完整性.因为当我加载实体时,我得到一个错误"没有给定标识符的行存在".如何配置映射以适应这种情况,以便在这种情况下不会死亡.



1> Craig..:

好的,我找到了答案.添加

not-found="ignore"

属性属性KeyField:



我遇到了与Fluent NHibernate类似的问题.特德,如果你能指出一个正确的解决方案,我会非常感激.FWIW,在KeyField上放置.NotFound.Ignore()无论如何都没有帮助.
这也使我绊倒了.对于注释,请使用@NotFound(action = NotFoundAction.IGNORE).

2> Shagglez..:

在我的情况下,问题是因为MyISAM引擎没有强制执行外键约束,因此其中一行最终指向一个不存在的值,并且代理引发了异常.在这种情况下,我建议检查您的数据集是否一致.



3> Rodolpho Bro..:

试试......

public void Override(ModelMapper modelMapper) {
    modelMapper.Class(c => { 
        c.ManyToOne(m => m.FKObj, r => {
            r.Column("FKColumn");
            r.NotFound(NotFoundMode.Ignore); // THIS IS IMPORTANT!!!
        });
    });
}

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有