C# Fluent Id字段具有两种不同的数据库引擎(Oracle和SQL Server)
我正在使用Fluent NHibernate映射我的实体 在我的应用程序中,我必须使用两个不同的引擎(Oracle和SQL Server)。我使用命令行参数中的参数设置引擎,并将其发送到我的SessionFactory类: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
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”部分