Linq2sql не поддерживает непосредственное использование перекрестных текстовых объектов -serialize / deserialize / attach действительно не стоит.
Сценарий, который у вас есть, является результатом связи между репозиториями. Вы создаете внутреннюю зависимость от него, используя тот же класс datacontext, который показан в коде RegisterOwner, пытающемся напрямую использовать полученную сущность.
Подумайте, что произойдет, если вызывающий код обновит что-то на объекте person, должен ли код RegisterOwner действительно сохранять эти изменения?
Этот тип связывания на уровне хранилища может быть в пределах того же ограниченного контекста. Если предполагается, что они являются частями независимых подсистем, автомобильный репозиторий будет сосредоточен на сохранении только той информации, которую он должен обрабатывать, которая является подмножеством информации о владельце, идентифицирующей пользователя в автомобильной системе. Это то, что позволяет вам менять фигуры по пути. Конечно, это имеет больше смысла в более сложном сценарии, где вы хотите иметь более высокие степени разделения.
Обратите внимание, что в опубликованном образце вам на самом деле не нужно ничего обновлять в Person, поэтому вы можете эффективно использовать версию, которая устанавливает только идентификатор человека в информации о владельце автомобиля, а не назначать ему полный экземпляр Person.
Для более связанного сценария вы можете использовать ответ Джона - дать им тот же экземпляр DataContext.