Проблема в том, что вы на самом деле не показываете всю историю. Чтобы иметь свойство навигации Relationship
, должен существовать идентификатор, который определяет эту связь. Итак, ваш класс должен выглядеть примерно так:
public class Entity{
public Int32 ID {get;set;}
public Int32? RelationshipID {get; set;}
public Relationship relationship {get;set;}
}
Если RelationshipID не равен NULL, то создается объект Relationship. Если значение RelationshipID не соответствует фактическому элементу данных, это является ошибкой и должно вызвать исключение.
Если RelationshipID равен нулю, то и отношение будет нулевым.
Исключением является случай, когда это значение равно 1 ко многим, в этом случае это будет ICollection, и отношение не будет нулевым, но это будет пустая коллекция, и не будет никакого RelationshipID (идентификатор будет удерживаться в соответствующем пункте).
Нельзя иметь отношения без какого-то ключа.