1

当系统有 N 层时,并且使用 ORM 时,如何跨层发送加载的实体?

你使用 DTO 吗?

当不使用 DTO 直接发送实体时,如何防止未初始化的延迟加载关系错误?

注意:这不是“应该使用 N 层吗?” 问题。我假设系统已经有 N 层。

4

2 回答 2

1

好吧,我不知道是否有更好的方法,但是当我们使用 Hibernate 时,我们只是关闭延迟加载,以便它加载所有内容。这样做显然要花费更多,但我不确定如何摆脱 Hibernate 将创建的延迟加载方法。

如果 Containers 有不经常使用的数据集,那么它们将不会被加载,并且由请求 UI 表单来调用它并发送它以进行更新。(我们构建了更新类来一起传递所有信息)

对于加载大量容器的 UI 表单,我们只需创建特殊类并填写我们需要的内容。它们是一种不用于持久性的只读容器。

可能有更好的方法..但我正在学习:)

于 2008-09-17T22:12:53.070 回答
0

我只是想找到使用 ORM 的方法。

这是一个吸引人的概念。像您一样,我不希望应用程序中的其他层知道 ORM 存在。

我目前正在查看的是使用我设计的接口和使用部分类(C#/.net 的东西,没有部分类,我想我会编写一个包装器)将接口的实现添加到生成的类型上由 ORM。

就延迟加载/延迟执行而言,这对应用程序也应该是不可见的。这是 ORM 提供的一项很好的服务,我很高兴它提供了,但我的应用程序不需要知道或关心它。因此,如果 ORM 没有向您隐藏它,那么我会再次查看一个处理此问题的包装器,以便应用程序不需要知道或关心。

于 2008-09-19T22:11:44.123 回答