Это не повторяющееся свойство - это два разных свойства для двух разных целей.
Свойство Vendor соответствует данным в столбце вашей базы данных.
Свойство Vendor1 представляет отношение внешнего ключа, то есть соединение с другой таблицей. Он называется Vendor1, потому что имя Vendor уже занято (хорошая идея - использовать VendorId для имени столбца). Объект Vendor1 не будет выбран по умолчанию, если вы его не используете. Наличие этого свойства облегчает формулировку запросов, которые в противном случае потребовали бы, чтобы вы указали соединение.
Оба свойства полезно иметь на вашем объекте.
Чтобы ответить на ваш обновленный вопрос:
Linq в любом случае должен получить идентификатор поставщика, используете ли вы его или нет - на всякий случай, если вы можете его использовать. Поскольку он уже получен, кажется удобным, что он также виден в интерфейсе. Если вместо obj.VendorId вы написали obj.Vendor1.Id, это приведет к ненужному извлечению объекта Vendor1 из базы данных. Так что это также влияет на производительность.