Если у меня есть Foo со свойством типа Bar. Оба сохраняются в базе данных, которую можно получить по идентификатору. (Идентификаторы на самом деле используются в бизнес-направлениях заявками на обслуживание клиентов. Поэтому они не просто заполнители индекса.) Я мог бы использовать подход, показанный с помощью b1 или b2.
Объединение в цепочку сущностей пугает меня, так как, если вы зайдете слишком далеко, легко получить всплывающее сообщение Нулла. С другой стороны, появление идентификатора везде, кажется, добавляет ненужную многословность.
int fooKey = 123;
Foo f = new Foo(fooKey);
Bar b1 = new Bar(Foo.BarID); //This?
Bar b2 = Foo.Bar; // Or This?
Примечание. Это НЕ касается .NET Entity Framework. Слово сущность используется здесь в общем смысле.