5

と を使用するアプリケーションがC#あり、NHibernateと をサポートします。流暢な nhibernate を使用してエンティティをマッピングしていますが、ID をどのようにマッピングすればよいかについていくつか質問があります。Oracle は Sequence のみ、SQL Server 2008 のみの ID、Sql Server 2012 の両方をサポートしています。Sql Server (2008 および 2012) で Identity と Oracle を同じコードの Sequence でマップしたいと思います。SQL Server 2008SQL Server 2012Oracle

すべてのデータベースで機能するように ID をマップするにはどうすればよいですか?

流暢なマッピング コードに IF ステートメントが含まれるかどうかは問題ではありません。マッピングのための私のコードを探します:

SQL の場合:

Id(x => x.Id).GeneratedBy.Native();

オラクルの場合:

Id(x => x.Id).GeneratedBy.Sequence("SQ_Customer");

PS: それを達成するための回避策は必要ありません。NHibernate/Fluent-NHibernateそれをマッピングするソリューションが必要です。

4

1 に答える 1

8

さて、「Native」は、使用するDBに応じて自動的にIdentity、sequence、HILOを選択します。

この xml マッピングを使用するとsq_customer、Oracle の場合は ID またはシーケンスを使用する必要があります。

  <generator class="native" >
    <param name="sequence">sq_customer</param>
  </generator>

この投稿では、さらに詳しく説明します。

于 2013-06-24T12:44:50.413 に答える