NHibernate 3.1破坏了我的密码,奥德?

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

我最近下载并安装了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 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!