最近NHibernate 3.1をダウンロードしてインストールしました。 3.0のインストールでコピーした2つの新しいDLLがあります。質問#1:これは私がする必要がありますか?NHibernate 3.1が私のコードを壊していますか?
私のシステムでは、カスタムIDジェネレータを実装しましたが、3.0で動作しますが、3.1でIDジェネレータ戦略を解釈できませんでした。他の変更はありませんでした。質問#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.1で、3.0で正常に働きました。おそらくそれはインストールの問題です...任意のアイデアですか?
質問#1 - リリースノートに** ILMerge AntlrとReLinq **が記載されています。リリースで提供されたDLLだけを使用して動作させることができました。クールで、少ないDLL! – Benjamin