NHibernate 3.1破坏了我的密码,奥德?
我最近下载并安装了NHibernate 3.1。我在3.0安装过程中复制了两个新的DLL。问题1:这就是我需要做的全部吗 在我的系统中,我实现了一个自定义id生成器,它与3.0配合使用,但我在3.1中遇到一个错误“无法解释id生成器策略”,没有进行其他更改。问题#2:3.1中发生了什么变化,使我在3.0中所做的不再有效 下面是一个自定义生成器类的示例NHibernate 3.1破坏了我的密码,奥德?,nhibernate,Nhibernate,我最近下载并安装了NHibernate 3.1。我在3.0安装过程中复制了两个新的DLL。问题1:这就是我需要做的全部吗 在我的系统中,我实现了一个自定义id生成器,它与3.0配合使用,但我在3.1中遇到一个错误“无法解释id生成器策略”,没有进行其他更改。问题#2:3.1中发生了什么变化,使我在3.0中所做的不再有效 下面是一个自定义生成器类的示例 public class IdGenerator : TableGenerator { public override object Ge
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-这就是我所做的一切,看起来我现在在3.1版上
问题#2-我使用一个类库来承载NHibernate的所有功能,然后是一个控制台应用程序来测试,然后再将我的新方法实现到系统中。我在控制台应用程序中将引用更改为3.1,但忘记在类库中执行同样的操作。一旦我在同一个版本上获得了这两个选项,错误消息“无法解释id生成器策略”就消失了,一切正常。我的自定义生成器过去没有问题,现在也没有问题。问题#1-在发行说明中提到了ILMerge Antlr和ReLinq。我只使用发行版附带的DLL就可以让它正常工作。酷,更少的DLL!