C# Fluent Id字段具有两种不同的数据库引擎(Oracle和SQL Server)

C# Fluent Id字段具有两种不同的数据库引擎(Oracle和SQL Server),c#,sql-server,oracle,fluent-nhibernate,C#,Sql Server,Oracle,Fluent Nhibernate,我正在使用Fluent NHibernate映射我的实体 在我的应用程序中,我必须使用两个不同的引擎(Oracle和SQL Server)。我使用命令行参数中的参数设置引擎,并将其发送到我的SessionFactory类: public static ISessionFactory CreateSessionFactory(string databaseEngine, string connectionString, Type entityType) { switch (databaseE

我正在使用Fluent NHibernate映射我的实体

在我的应用程序中,我必须使用两个不同的引擎(Oracle和SQL Server)。我使用命令行参数中的参数设置引擎,并将其发送到我的SessionFactory类:

public static ISessionFactory CreateSessionFactory(string databaseEngine, string connectionString, Type entityType)
{
   switch (databaseEngine.ToLower())
   {
      case "mssql":
         return Fluently.Configure()
                      .Database(MsSqlConfiguration.MsSql2008.ConnectionString(connectionString))
                      .Mappings(m => m.FluentMappings.AddFromAssembly(entityType.Assembly))
                      .BuildSessionFactory();
      case "oracle":
         return Fluently.Configure()
                      .Database(OracleClientConfiguration.Oracle9.ConnectionString(connectionString))
                      .Mappings(m => m.FluentMappings.AddFromAssembly(entityType.Assembly))
                      .BuildSessionFactory();
   }

   return null;
}
这是我的一个MapClass:

public class SimulacaoMap : ClassMap<Simulacao>
{
    public SimulacaoMap()
    {
        Table("SIMULACAO").GeneratedBy.Sequence("SEQUENCE_NAME"); 
        Id(x => x.Id).Column("ID_SIMULACAO");
        Map(x => x.DataReferencia).Column("DAT_REFERENCIA");
    }
}
公共类模拟映射:类映射
{
公共模拟地图()
{
表(“SIMULACAO”)。由序列生成(“序列名称”);
Id(x=>x.Id).列(“Id_SIMULACAO”);
Map(x=>x.datareferencea)列(“DAT_referencea”);
}
}
这适用于Oracle,但当我使用SQL Server时,会出现以下异常:

无法实例化id生成器: 顺序

如何使用同时适用于SQL Server和Oracle的Id映射

感谢

SQL Server vNext“序列”,或者更改“GeneratedBy”部分