我有一个像这样的对象结构:
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;}
}
关系包含有关父实例和子实例的所有信息,我想在父实例和构成关系的所有子实例上共享相同的关系实例。
现在,当我从数据库加载我的实体时,我从顶部实体开始,然后加载关系。我想我可以缓存我正在建立的关系并为孩子们重用相同的实例。但这不适用于创建我需要加载所有子实体的关系,因此每个子实体都尝试重新创建我当前试图在创建之前获取子实体的相同关系,所以我最终创建了所有在我可以将关系添加到缓存之前,树中我下面的关系实例。
有没有办法在不使孩子成为我的关系的可设置属性的情况下解决这个问题,所以我可以在创建孩子之前创建对关系的引用?