我通过以下方式有一个客户端服务器应用程序。
在域中,一些类有孩子的集合。有些孩子参考他们的父母。
的问题是,当向服务器请求子对象时,所有其他子对象都会随响应返回。在许多情况下,从子级访问父级对象是非常有帮助的,我宁愿不必为父级单独请求,因为这会导致更多的往返行程。
通常 Nhibernates 延迟加载会处理这个问题,但是与 protobuf-net(或任何其他序列化)的交互意味着所有字段都可以访问以进行序列化。客户端无法直接访问数据库。
是否可以限制 protobuf-net 或 Nhibernate 中的对象引用深度,以便我可以在对服务器的请求中包含一个标志,表示不要加载超过 2 个对象的深度。
例如订单 - 订单项目 - 交货信息。
一个订单请求的限制将意味着不加载交付信息。限制为 0 意味着不加载订单项。
或者,是否可以选择性地停止加载引用(限制为 0 或无限制),这更具限制性,但可能更可行。