問題タブ [nhibernate-mapping]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - セパレートアセンブリのサブクラスの場合のNHibernate継承マッピング
コアプロジェクトにベースエンティティがあり、すべてのプラグインがベースエンティティを拡張していると仮定します。
ソリューションの構造:
NHibernateサブクラスを使用してこのマッピングを実装する方法はありますか?
nhibernate - NHibernate:Fluent NHibernateを使用して中間テーブルを処理する最良の方法は?
Fluent NHibernate で以下をどのようにマッピングしますか?
「18.3. 顧客・注文・商品」参照
http://www.hibernate.org/hib_docs/nhibernate/html/example-mappings.html
nhibernate-mapping - NHibernate 多対多
レガシー データベースがあり、NHibernate DAL を作成しようとしています。多対多テーブルのマッピングに問題があります。
データベース テーブル:
studio_Subscribers
studio_Groups
(サブスクライバーの IList を含む)studio_Subscribers_Groups
- 主キーを持つ多対多テーブル
問題は、SubscriberGroup
インスタンスを作成してそれをサブスクライバーで満たすと、サブスクライバーはテーブルに保存されstudio_Subscribers
ますが、多対多テーブルには保存されないことです。
何が悪いのかわからない?
studio_Subscribers
テーブル マッピング:
studio_Groups
テーブル マッピング:
nhibernate - DB の区切り文字列としての Nhibernate ValueType コレクション
Nhibernate でマッピングしているレガシー データベースがあります。また、いくつかの場所では、データベース内で文字列またはドメイン オブジェクトのリストが区切られた文字列としてマップされます。値型の場合は「string|string|string」、参照型の場合は「domainID|domainID|domainID」のようになります。
クラスにダミーのプロパティを作成してそのフィールドにマップできることはわかっていますが、Enums をEnumStringTypeクラスの文字列表現としてマッピングするときのように、よりクリーンな方法でそれを行いたいと考えています。
IUserType はここに行く方法ですか?
前もって感謝/ヨハン
c# - このマッピングは (Fluent) NHibernate で実行できますか?
Web サイトのユーザーが行ったアクションを保存することを目的とした Events テーブルがあります。アクションは基本的に、テーブル X の新しい行を変更または作成します。これにより、ユーザーが実行したすべてのアクションの履歴を保存できます。そのため、イベントには以下が含まれます。
- 主キー列
- イベントを説明するテキスト (例: 「コメントを投稿しました」)
- 必要に応じて識別子列
- 別のテーブル A への外部キー列
- 別のテーブル B への外部キー列
- ....
- 別のテーブル N への外部キー列
Events テーブルの行には、外部キー列が 1 つだけ設定され、その他はすべて null になります (したがって、すべて null 可能です)。テーブルは、イベントに関連する実際のテーブルに対する間接テーブルのように動作します。すべての情報が外部キー列に含まれているため、識別子が必要かどうかはわかりません。テーブル A ~ N は何でもかまいません。それらのドメイン モデル クラスは、必要に応じて共通のインターフェイスを持つことができます (IEventRecordable)。
私の質問は次のとおりです: Events テーブルと Event クラスの間でマッピングは可能ですか? 流暢なnhibernateで特に実現可能ですか? Event の派生クラスを多数作成せずに実行できますか (空のサブクラスを多数作成したくありません)。Event クラスは、理想的には次のようになります。
ドメイン モデル クラスの多くのクラスは、IEventRecordable (主に空のインターフェイス) を実装できます。User テーブルまたは BlogComment テーブルの可能性があります...
ありがとう
c# - 基本クラスが抽象で、識別子が文字列ではないクラス階層を使用した NHibernate マッピング
ドメイン モデル クラスは次のとおりです。
親クラスは抽象的であり、流暢な nhibernate でマップするときが来ると、これがいくつかの問題を引き起こすことに注意してください。私の識別子はバイトです(DBのtinyint)。これは文字列ではなく、基本クラスに識別子の値を設定できないため、これは機能しません (BaseClass のマッピング クラスから取得)。
私が得るエラーメッセージは次のとおりです。
クラスの初期化メソッド UnitTest1.MyClassInitialize が例外をスローしました。NHibernate.MappingException: NHibernate.MappingException: 識別子の値をエンティティ BaseClass の SQL 文字列にフォーマットできませんでした ---> System.FormatException: 入力文字列が正しい形式ではありませんでした..
次の投稿は、何が起こるかを説明しているようです。彼らはxmlで解決策を提供しますが、流暢なnhibernateでは解決しません: http://forum.hibernate.org/viewtopic.php?t=974225
助けてくれてありがとう。
c# - NHibernate での EnumStringType の正規化
私は現在、次のようにマッピングされたNHibernateで列挙を使用しています..
データベースが正規化されていないことを除いて、これは完全に機能します。People テーブルのすべての行には、4 つのテキスト文字列のいずれかを含む列があります。これを新しいテーブルに分割しましたが、NHibernate でマッピングを作成する方法がわかりません。私の最初の本能は<many-to-one>
、この列挙を独自のエンティティにしたくないということでした。基本的には、追加の列に追加するために単純な結合を行うために NHibernate が必要なだけです。
応急処置として、ビューを作成しましたが、これは正常に動作しますが、スキーマではなく、NHibernate マッピングに抽象化レイヤーを配置したいと考えています。
c# - nHibernate を使用してコンマ区切りリストをフィールドに保存する
データベースの永続化のために C# と nHibernate を使用してブログを作成しています。エントリをタグ付けできるようにしたいので、tags プロパティの IList があります。しかし、これをデータベースの単一の列にあるカンマ区切りのリストにマップするにはどうすればよいでしょうか?
タグに別のテーブルを使用することは避け、それらを 1 つの列に別のリストとして保持したいと考えています。だから私は基本的に、データベース内のコンマ区切りのリストを IList プロパティにマップしようとしています。これは nHibernate で可能ですか?
nhibernate - NHibernate を使用した中間テーブルでの追加データの使用
製品に関する情報をドキュメントに入力するために使用されるプロジェクトに取り組んでいます。1 つのセクションには、特定の製品について必要な回数だけ入力できるフォームがあります。このフォームの情報は、複数の関連ドキュメントで共有できます。典型的な多対多の状況。違いは、中間テーブルでは、その特定のドキュメントのフォーム エントリに関する特定の情報を格納する必要があることです。
ポイントを説明するために、いくつかのテーブル定義を次に示します。
そしていくつかのクラス:
Document との多対多の関係の一部としてフォームを読み取るときに、追加データの読み取りをサポートするマッピングを作成する方法はありますか? 多対多の関係でデータをロードする場合、ストアド プロシージャを使用する必要がありますか? Form オブジェクトをドキュメントの一部にせずに読み込めるようにする必要がありますが、ドキュメントに追加した後は、いくつかの単純な規則に基づいて生成された番号をオブジェクトに持たせる必要があります。しかし、その数は明らかにドキュメント固有です。したがって、次のドキュメントは同じ Form データを使用する可能性がありますが、新しい番号が必要です。
これを達成する方法について何か提案はありますか?
.net - Fluent NHibernate で主キー列のカスタム名を使用できますか?
Fluent NHibernate で作業している間、私はとても驚きました。ドメイン モデルのプロパティとは異なる主キー列名を持つレガシー データベースを取得しました。このマッピング ファイルを使用できると確信しています。
しかし、Fluent NHibernate マッピングでこのマッピングを実際に取得するにはどうすればよいでしょうか?