Edit: Я только что заметил, что вы упомянули, что вы столкнулись с этим в существующем коде. То, что я сказал ниже, все еще может относиться к решению вашей проблемы, но на самом деле это может не иметь непосредственного конструктивного использования. :) К сожалению, нам нужно было бы увидеть намного больше кода, чтобы помочь вам с вашей проблемой, поскольку то, что вы показали нам до сих пор, странно.
Кажется, вы построили свои классы наизнанку.
Опросы обычно определяются как наборы вопросов.
Следовательно, не должен ли ваш класс Survey содержать и ссылаться на Вопросы, а не наоборот?
Вы можете сохранить их отношения в таблице ссылок, что позволит Surveys искать свои Вопросы, а также позволяет Вопросам искать, в каких Surveys они находятся. Создайте методы доступа в каждом классе для поиска зависимости в связать таблицу и вернуть либо идентификаторы для объектов, либо сами объекты. Этот метод делает объекты менее тесно связанными друг с другом.
(С распространением этого на пользователей, отвечающих на вопросы, все становится более интересным. Если бы я делал это, я бы создал класс для Ответа каждого пользователя (каждый пользователь получает один Ответ), который содержит Ответы. Ответ ссылается на опрос, Ответы каждый ссылается на вопрос.)
Вероятно, это не тот случай, когда внедрение зависимостей применимо. DI чаще всего используется, когда фактический класс передаваемого объекта может измениться, или когда внешняя сила может контролировать, какой объект может быть передан. Вы когда-нибудь ожидали, что Surveys будет содержать вещи, которые не являются вопросами? Или что Вопросы когда-нибудь будут существовать внутри чего-то, что не является Обследованием? Или что сила, не связанная ни с чем-либо, связанным с опросами или вопросами, будет манипулировать вопросом? Если вы ответили «нет» на них, то DI, вероятно, не то, что вы хотите здесь.