C# NHibernate:在与映射属性相同的对象上具有非映射属性
我刚刚重构了我的应用程序以摆脱域对象层,因为它导致了NHibernate的延迟加载中断——我使用NHProf发现了这一点,并将责任归咎于AutoMapper 我见过其他人也有类似的问题。因此,应用YAGNI我决定将DTO层全部去掉,只使用一组域对象,这对我来说是有意义的 但是,我的域对象上有几个属性,而映射对象上不存在这些属性。我已将这些对象移动到数据层映射对象,但现在收到NHibernate错误,因为它们不是虚拟对象 我真的不希望它们是虚拟的,是吗?这些要么只是在其他映射属性上操作的Getter属性,要么是在业务逻辑中设置的C# NHibernate:在与映射属性相同的对象上具有非映射属性,c#,nhibernate,C#,Nhibernate,我刚刚重构了我的应用程序以摆脱域对象层,因为它导致了NHibernate的延迟加载中断——我使用NHProf发现了这一点,并将责任归咎于AutoMapper 我见过其他人也有类似的问题。因此,应用YAGNI我决定将DTO层全部去掉,只使用一组域对象,这对我来说是有意义的 但是,我的域对象上有几个属性,而映射对象上不存在这些属性。我已将这些对象移动到数据层映射对象,但现在收到NHibernate错误,因为它们不是虚拟对象 我真的不希望它们是虚拟的,是吗?这些要么只是在其他映射属性上操作的Gette
有人有什么想法吗?谷歌帮不上忙。看来我应该尝试将它们设置为虚拟的
吸取的教训是,即使您没有映射NHibernate对象上的属性,也要将它们设置为虚拟对象。这一点,以及许多其他原因,让我得出结论,我确实需要保留DTO。NHibernate强加了许多限制/设计决策,我对此很不满意,目前我不会直接将域对象映射到NHibernate。我会一直这样做,直到我需要它-对延迟加载的东西(特别是automapper)要非常小心,因为它会引发大量的查询。你可以利用缓存来解决这个问题,但我被它抓住了。