Оба сопоставления будут создавать точно такую же схему базы данных с невообразимым внешним ключом SomethingId и реляционным ограничением между двумя связанными таблицами.
Первое сопоставление с MapKey используется, когда вы не хотите иметь внешний ключ как свойство в вашем классе модели. Тип ассоциации в этом случае называется Independent Association. Вы должны применить второе сопоставление с HasForeignKey когда внешний ключ является свойством в модели. Этот тип называется Ассоциацией внешних ключей.
Во многих сценариях легче работать с ассоциациями с иностранными ключами, но многие считают его менее чистым иметь реляционный артефакт (внешний ключ) в объектном мире и поэтому предпочитают независимые ассоциации.
Вот несколько ссылок на два типа ассоциаций и их "за" и "против":