Architecture 使用ORM时,如何跨层安全地发送加载的实体

Architecture 使用ORM时,如何跨层安全地发送加载的实体,architecture,orm,Architecture,Orm,当一个系统有N个层,并且使用ORM时,如何跨层发送加载的实体 你用DTO吗 当不使用DTO并且直接发送实体时,如何防止未初始化的延迟加载关系错误 注意:这不是一个“是否应使用N层?”问题。我假设系统已经有N层了。我不知道是否有更好的方法,但是当我们使用Hibernate时,我们只是关闭延迟加载,以便它加载所有内容。显然,这样做的成本更高,但我不确定如何摆脱Hibernate将创建的延迟加载方法 如果一个容器有一组不经常使用的数据,那么它们将不会被加载,由请求的UI表单调用它并发送更新。(我们构建

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

你用DTO吗

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


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

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

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

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


也许有更好的办法。。但是我正在学习:)

我不知道是否有更好的方法,但是当我们使用Hibernate时,我们只是关闭延迟加载,这样它就可以加载所有东西。显然,这样做的成本更高,但我不确定如何摆脱Hibernate将创建的延迟加载方法

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

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


也许有更好的办法。。但我正在学习:)

我只是想找到使用ORMs的方法

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

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


至于延迟加载/延迟执行,应用程序也应该看不到。对于ORM来说,这是一个很好的服务,我很高兴它能提供,但我的应用程序不需要知道或关心它。因此,如果ORM没有向您隐藏这一点,那么我会再次查看一个处理这一点的包装器,这样应用程序就不需要知道或关心了。

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

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

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

至于延迟加载/延迟执行,应用程序也应该看不到。对于ORM来说,这是一个很好的服务,我很高兴它能提供,但我的应用程序不需要知道或关心它。因此,如果ORM没有向您隐藏这一点,那么我会再次查看处理这一点的包装器,这样应用程序就不需要知道或关心