![]() |
1
2
考虑通过存储库加载对象,该存储库跟踪已加载的对象。 编辑:如果你正在做你自己的ORM(即使你没有),我强烈推荐MartinFowler的《企业应用程序体系结构模式》。我隐约记得他在书中谈到了这种循环的情况,所以这可能会对你有所帮助。 编辑2: 在循环的第4步和第5步中,如果已经加载了国家/地区,则无需急于加载其状态,因为它们应该已经加载。这打破了无限循环。 |
![]() |
2
1
数据映射器应捕获循环引用。它是国产的数据映射器吗? |
![]() |
3
0
我只是想贴出我想出的解决方案,但是我相信有很多方法可以帮这只猫剥皮。 这是我创建的FetchDepthCounterClass:
递增计数器返回一个bool,说明是否已达到最大提取深度。在设置属性值之前,我调用增量计数器作为映射过程的一部分。首先,我确定要加载的是另一个DTO对象或DTO集合,然后传递 起源 在该类型上键入并递增。这是我的DataMapper中setValue方法中的一小段代码:
就是这样,似乎就是这样。我所有的单元测试都通过了。谢谢大家的帮助。我希望以后这能帮助别人。再一次,将它包装成一个工作模式单元可能会容易得多,并且最终我可能会这样做,但现在这就完成了工作。 |
|
gadpaw · 如何创建序列化对象集C# 10 年前 |