Это связано с тем, будет ли обычное использование (в домене приложения) пытаться получить доступ к обеим сторонам отношений с другой стороны ... Счета-фактуры на продукты, вероятно, будут однонаправленными, поскольку мы часто хотим знать, какие продукты указаны в счете, маловероятно, что вы захотите узнать все счета, содержащие данный продукт.
Магазины для товаров, с другой стороны, являются двунаправленными, так как мы можем легко получить доступ ко всем товарам в определенном магазине или найти все магазины, которые продают определенный товар.
Двунаправленный не ограничен тем, где отношения являются отношениями «многие ко многим». Отношения сотрудника с руководителем могут легко быть двунаправленными, если в нашей доменной модели объект сотрудника должен иметь возможность доступа к объекту руководителя сотрудника, и, конечно, объект руководителя содержит свойство, которое перечисляет всех его назначенных сотрудников. ,
Двунаправленная связь один ко многим:
Штат и город, где штат имеет коллекционную собственность городов, а город - государственную собственность
Много ко многим Однонаправлено:
Bus и Rider, где Bus имеет свойство коллекции Riders, но Rider не имеет свойства коллекции, в котором перечислены все автобусы, на которых ездил Rider (приложение не заботится).
Двунаправленный от многих ко многим:
Класс Person, где у каждого человека есть Свойство Friends, поскольку Коллекция объектов другого человека, с которыми этот человек дружит;
или ...
Классы Artist и Album, где Artist имеет коллекцию Albums, а Album имеет Artists Collection (где альбом представляет собой подборку треков из нескольких исполнителей)