Как сказал Бен, вы можете использовать квалифицированные имена типов.
Однако обычная практика в NHibernate - помещать сопоставление для каждого класса в отдельный файл, что облегчает его обслуживание.
Лично я иногда группирую связанные классы в одном файле, но это все (например, XYHeader и XYDetail ).
Для типов, поступающих из разных сборок (которые обычно подразумевают разные поддомены), я даже использую отдельные проекты.