如何仅使用一次循环引用在层次结构中加载实例?
|
我有一个这样的对象结构:
public class Entity
{
IList<Relationship> Relationships{get;set;}
}
public class Relationship
{
public Relationship(Entity parent, IList<Entity> children)
{
//set properties
}
Entity Parent{get;private set;}
IList<Entity> Children{get;private set;}
}
Relationship包含有关父实例和子实例的所有信息,我想在父级和组成该关系的所有子实例上共享相同的Relationship实例。
现在,当我从数据库中加载我的实体时,我从顶层实体开始,然后顶层实体加载关系。我以为我可以缓存正在建立的关系,并为孩子重用同一实例。但这无法创建关系,因此我需要加载所有子实体,因此每个子实体都尝试重新创建当前创建子实体时要使用的同一个关系,因此最终创建在将关系添加到缓存之前,我会在树中找到我下面的所有关系实例。
有没有一种方法可以解决这个问题,而不必使子级成为我的关系的可设置属性,因此我可以在创建子级之前创建对关系的引用?
没有找到相关结果
已邀请:
1 个回复
屉杆绊