我已经为相关对象设置了带有 ICollection 的 POCO 类。它们在 WCF 服务中,所以我用 DataContract/DataMember 装饰了它们。我不为相关对象使用虚拟属性,因为它们创建了一个不会序列化的代理(我收到一条看似无关的消息,“底层连接已关闭”,但是当我删除虚拟修饰符时,它就消失了。)
我无法理解的是如何延迟加载相关对象的集合。我不认为 POCO 可以为自己做到这一点,因为他们无法访问上下文。
例如,我有一个Company
类,它有一个ICollection<Principals>
属性。我通常不想在检索公司时加载所有委托人,但我想参考Company.Principals
去获取它们。显然,Company
靠自己根本无法做到这一点。
人们正在做些什么来结合拥有 (1) POCO 对象、(2) 典型的 WCF 序列化和 (3) 延迟加载的相关属性的愿望?