我有一个使用C#
and的应用程序,NHibernate
它将支持SQL Server 2008
,SQL Server 2012
和Oracle
. 我一直在使用流利的 nhibernate 来映射我的实体,我对如何映射 ID 有一些疑问。Oracle 仅支持序列、仅 SQL Server 2008 标识和 Sql Server 2012 两者。我想在 Sql Server(2008 和 2012)中使用 Identity 和 Oracle 与 Sequence 在相同的代码上进行映射。
我应该如何映射 ID 以适用于所有数据库?
我是否会在我的流利映射代码上有一些 IF 声明并不重要。查找我的映射代码:
对于 SQL:
Id(x => x.Id).GeneratedBy.Native();
对于甲骨文:
Id(x => x.Id).GeneratedBy.Sequence("SQ_Customer");
PS:我不想要任何解决方法来实现它。我想要一个NHibernate/Fluent-NHibernate
解决方案来映射它。