当系统有N层时,当使用ORM时,如何跨层发送加载的实体?
你使用DTO吗?
当不使用DTO,直接发送实体时,如何防止未初始化的延迟加载关系错误?
注意:这不是“是否应该使用N层?”有个问题。我假设系统已经有N层了。
发布于 2008-09-17 22:12:53
我不知道是否有更好的方法,但是当我们使用Hibernate时,我们只是关闭了延迟加载,这样它就可以加载所有东西。这样做的成本显然更高,但我不确定如何摆脱Hibernate将创建的惰性加载方法。
如果容器具有不经常使用的数据集,那么它们将不会被加载,这取决于请求的UI表单调用它并将其发送以进行更新。(我们构建了更新类来一起传递所有信息)
对于加载了大量容器的UI表单,我们只需创建特殊的类并填充所需的内容即可。它们是某种只读容器,不用于持久化。
也许有更好的方法..。但我正在学习:)
发布于 2008-09-19 22:11:44
我只是想用ORMs找到我的方式。
这是一个很吸引人的概念。像您一样,我不希望应用程序中的其他层知道ORM的存在。
我目前考虑的是使用我设计的接口并使用分部类(一种C#/.net的东西,没有分部类,我想我会编写一个包装器)来将接口的实现添加到ORM生成的类型上。
就延迟加载/延迟执行而言,这对应用程序也应该是不可见的。这是ORM提供的一个很好的服务,我很高兴它这样做了,但我的应用程序不应该知道或关心它。因此,如果ORM没有对您隐藏这一点,那么我将再次查看处理这一点的包装器,这样应用程序就不需要知道或关心它。
https://stackoverflow.com/questions/88192
复制相似问题