Я недавно скачал и установил NHibernate 3.1. Есть 2 новые библиотеки DLL, которые я скопировал поверх версии 3.0. Вопрос № 1: это все, что мне нужно сделать?
В моей системе я реализовал собственный генератор идентификаторов, он работает с 3.0, но я получаю сообщение об ошибке «Не могу интерпретировать стратегию генератора идентификаторов» с 3.1, другие изменения не были сделаны. Вопрос № 2: Что изменилось в 3.1, что то, что я сделал в 3.0, больше не работает?
Вот пример моего пользовательского класса генератора.
public class IdGenerator : TableGenerator
{
public override object Generate(ISessionImplementor session, object obj)
{
if(session.Connection.ToString().ToLower().IndexOf("sqlclient") > 0)
{
IQuery query = session.GetNamedSQLQuery("GenerateSQLServerId");
return Convert.ToInt32(query.UniqueResult());
}
else if (session.Connection.ToString().ToLower().IndexOf("oracle") > 0)
{
IQuery query = session.GetNamedSQLQuery("GenerateOracleId");
return query.List()[0];
}
return null;
}
}
И в моем файле hbm.xml есть:
<id name="Id" column="ID" type="int">
<generator class="Namespace.IdGenerator, Namespace" />
</id>
Как я уже сказал, с 3.0 все работало нормально, но не с 3.1. Возможно, это проблема установки ... есть идеи?