Я недавно загрузил и установил NHibernate 3.1. Есть 2 новых DLL, которые я скопировал по установке 3.0. Вопрос №1: Это все, что мне нужно?NHibernate 3.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. Возможно, это проблема с установкой ... любые идеи?
Вопрос № 1 - В примечаниях к выпуску в нем упоминаются ** ILMerge Antlr и ReLinq **. Мне удалось заставить его работать, используя только DLL, поставляемые с выпуском. Классно, меньше DLL! – Benjamin