Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NHibernate:在与映射属性相同的对象上具有非映射属性_C#_Nhibernate - Fatal编程技术网

C# NHibernate:在与映射属性相同的对象上具有非映射属性

C# NHibernate:在与映射属性相同的对象上具有非映射属性,c#,nhibernate,C#,Nhibernate,我刚刚重构了我的应用程序以摆脱域对象层,因为它导致了NHibernate的延迟加载中断——我使用NHProf发现了这一点,并将责任归咎于AutoMapper 我见过其他人也有类似的问题。因此,应用YAGNI我决定将DTO层全部去掉,只使用一组域对象,这对我来说是有意义的 但是,我的域对象上有几个属性,而映射对象上不存在这些属性。我已将这些对象移动到数据层映射对象,但现在收到NHibernate错误,因为它们不是虚拟对象 我真的不希望它们是虚拟的,是吗?这些要么只是在其他映射属性上操作的Gette

我刚刚重构了我的应用程序以摆脱域对象层,因为它导致了NHibernate的延迟加载中断——我使用NHProf发现了这一点,并将责任归咎于AutoMapper

我见过其他人也有类似的问题。因此,应用YAGNI我决定将DTO层全部去掉,只使用一组域对象,这对我来说是有意义的

但是,我的域对象上有几个属性,而映射对象上不存在这些属性。我已将这些对象移动到数据层映射对象,但现在收到NHibernate错误,因为它们不是虚拟对象

我真的不希望它们是虚拟的,是吗?这些要么只是在其他映射属性上操作的Getter属性,要么是在业务逻辑中设置的


有人有什么想法吗?谷歌帮不上忙。

看来我应该尝试将它们设置为虚拟的


吸取的教训是,即使您没有映射NHibernate对象上的属性,也要将它们设置为虚拟对象。

这一点,以及许多其他原因,让我得出结论,我确实需要保留DTO。NHibernate强加了许多限制/设计决策,我对此很不满意,目前我不会直接将域对象映射到NHibernate。我会一直这样做,直到我需要它-对延迟加载的东西(特别是automapper)要非常小心,因为它会引发大量的查询。你可以利用缓存来解决这个问题,但我被它抓住了。