У меня есть объектная структура, подобная этой:
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 на родительском и всех дочерних экземплярах, которыесоздайте отношения.
Теперь, когда я загружаю свои сущности из БД, я начинаю с верхней сущности, которая затем загружает связи.Я думал, что смогу просто кешировать отношения, которые я строю, и использовать один и тот же экземпляр для детей.Но это не работает для создания отношений, которые мне нужны для загрузки всех дочерних сущностей, поэтому каждая дочерняя сущность пытается воссоздать те же отношения, которые я сейчас пытаюсь получить до того, как они были созданы, поэтому я в итоге создаю всеэкземпляров отношений ниже меня в дереве, прежде чем я смогу добавить отношение в кеш.
Есть ли способ обойти это, не делая потомков настраиваемым свойством моих отношений, чтобы я мог создатьссылка на отношения до создания детей?