Регулярное выражение добьется цели с очень небольшим количеством кода:
import re
...
if re.match("^[A-Za-z0-9_-]*$", my_little_string):
# do something here
Вот пример моего кода: Единственное, что различается между версией NHibernate и моим Hibernate, - это автоматический импорт, и я предполагаю, что это пакет.
<hibernate-mapping auto-import="true" package="PackageName">
<class name="Name of class to maptop">
<composite-id>
<key-property name="<name of parameter>" type="TYPE"/>
</composite-id>
<property name="COLUMNNAME" type="TYPE"/>
</class>
<sql-query name="queryName">
<return alias="dr" class="Name of class to map to"/>
select columnName as {dr.nameofColumn},
from table
</sql-query>
</hibernate-mapping>
Я думаю, что проблема, которая существует в вашем коде, заключается в том, что вы специально не указали столбцы и как они соответствуют вашему классу.
Примечание: Если есть какие-либо поля, которые не соответствуют формату NHibernate XML, дайте мне знать в комментариях. У меня сейчас нет доступа к моим файлам отображения NHibernate.