Я использую 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");
}
}
Это работает для Oracle, но, когда я использую SQL Server, я получаю следующее исключение:
не удалось создать экземпляр генератора идентификаторов:
последовательность.
Как я могу использовать Id Map, которая работает одновременно для SQL Server и Oracle?
Спасибо