Я думаю, что вы можете отобразить класс, но вы в отображении должны явно объявить, какой тип будет использоваться в качестве универсального параметра, например:
<class name="GenericClass`1[ConcreteType], assembly"
table="table">
<id name="Id">
<generator class="identity"/>
</id>
</class>
в вашем случае, я думаю, это будет:
<class name="Pair`1[Namespace.TheClass], assembly"
table="table">
<id name="Id">
<generator class="identity"/>
</id>
<many-to-one name="First" class="Namespace.TheClass, assembly"/>
</class>
как компонент:
<component name="Property" class="Pair`1[Namespace.TheClass], assembly">
<many-to-one name="First" class="Namespace.TheClass, assembly"/>
</component>
И если вы хотите использовать тот же универсальный класс или компонент с другим типом, что и универсальный параметр, вы должны создать другое отображение для этого конкретного случая.