問題タブ [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.

0 投票する
2 に答える
3147 参照

nhibernate - nHibernate 2.0 の Session.Get を使用する際の問題複合 ID を持つクラス

(私が思うに) シンプルであるべき何かに問題がありますが、明確な情報が見つかりません。

人が複数の仕事を持つことができるドメインを説明する 3 つのテーブルがあるシナリオでは、次のようになります。

Person - PersonId、Name
Job - JobId、JobName
を持つ PersonJob - PersonId、JobId、YearsOfEmployment を持つ

注: 私のオブジェクト モデルには、各テーブルを表すエンティティがあります。そこには有用なメタデータ (YearsOfEmployment) があり、単純な結合テーブルではないため、Person/Job 関係を表す 3 番目のエンティティがあります。

したがって、PersonId と JobId を知っている場合、セッションを使用してそれらの ID に一致するオブジェクトを返す簡単な方法はありますか?

または、別の言い方をすれば、主キーが脳死状態であることを既に知っているので、SQL「SELECT YearsOfEmployment FROM PersonJob WHERE PersonId=1 AND JobId=1」を次のようなものに変える簡単な方法です。

var keys = new {PersonId=1, JobId=2};
PersonJob obj = Session.Get<PersonJob>(keys);

ところで: マップは次のようになります。

0 投票する
5 に答える
3461 参照

orm - 結合テーブルに余分な列がある多対多マッピング

取得したいドメインは次のとおりです。

そして、これは私が持っているスキーマです:

これは不自然なスキーマとドメインですが、私が扱っているものとほとんど同じです。私は現在、CertificatesAcquiredByPeople テーブルを表す 3 番目のドメイン エンティティを作成することで機能していますが、それは本当に奇妙に思えます。

NHibernate を使用してこれをどのようにマップしますか? hbm ファイルのコンポーネント タグは、目的どおりに動作するはずですが、よくわかりません。

Certificate クラスに DateAcquired プロパティがあるため、私のドメインはおかしくなっていますか? 日付は、証明書を持っている人の関心事です。

[編集]

新しいエンティティが必要であることを反映するために、ドメイン モデルを変更しました。マッピングには 3 つの (エンティティごとに) マッピングが必要ですか、それとも 2 つ (個人と証明書の場合) で行うことができますか?

0 投票する
1 に答える
18398 参照

nhibernate - nHibernate 2.0 - 複合 ID と多対 1 の関係をマッピングすると、「無効なインデックス」エラーが発生する

私は問題があります。次のデータ モデルを想像してください。

[PersonTag]単純な多対多結合テーブルではないため、3 つのエンティティすべてを nHibernate で作成しました (データ モデルにあるのとまったく同じです) 。PersonTagしたがって、次のようなクラスにマップした複合 ID が必要です。

オブジェクト グラフをトラバースして、取得したオブジェクトからPersonとオブジェクトの両方を確認できるようにしたいと考えています。そのため、オブジェクトにそれを行うためのプロパティがあり、次のようにマッピングされています。TagPersonTagPersonTag

PersonTagオブジェクトを作成して保存しようとすると、 「Count=n のこの SqlParameterCollection のインデックス n が無効です」というエラーが表示されます。これは、複合 ID 用に 1 回、多対 1 の関係用に 1 回、プロパティを 2 回PersonIdマップしたためです。TagId多対 1 のオブジェクトをマップしなければ、すべてうまくいきます。

同じ nHibernate エンティティでモデル化された同じ列に基づいて、複合 ID と多対 1 の関係を持つことができる方法はありますか?

0 投票する
2 に答える
835 参照

c# - NHibernate hbm xml (または fluent-nhibernate クラス マップ) の主キーでもあるコンポーネントをどのようにマップしますか?

コンポーネントを nhibernate の主キーとしてマップする方法と、可能であれば流暢な nhibernate でも同様にマップする方法を理解しようとしています。

問題のコンポーネントは、3D 座標の一意のセットです。オブジェクトは次のとおりです。

SpaceCoordinate は、次のように定義された構造体です。

SpaceCoordinate をコンポーネントにする流暢な nhibernate では、次のようなマッピング クラスを作成します。

しかし、私が知りたいのは、 SpaceCoordinate コンポーネント全体を一意の制約を持つ主キーにする方法です。これを Nhibernate xml または流暢な nhibernate クラスマップでどのようにマッピングしますか?

0 投票する
2 に答える
9524 参照

fluent-nhibernate - 流暢なnhibernateで列挙型を文字列としてどのようにマップしますか?

Fluent Nhibernate を使用して列挙型を文字列としてマップすることは可能ですか?

0 投票する
1 に答える
7719 参照

asp.net - 3つのテーブルでのFluentNhibernateマッピング内部結合

データ構造は次のとおりです。

  • テーブル[アンケート]トップノード
  • Table[QuestionGroup]見出しなどの単なるグループ化
  • テーブル[QuestionnaireQuestion]マッピング[Question]<->[QuestionGroup]多対多の関係、および[Questionnaire]<->[Question]多対多の関係
  • テーブル[質問]

レポートの目的で、多くの質問票/質問グループに1つの質問が存在する可能性があります。テーブルQuestionnaireQuestionには、必須?のように、質問表ごとに異なる可能性のある質問のいくつかのプロパティも含まれています。検証など。私が理解できないのは、Question.Requiredをマップする方法です。このプロパティは、question_idおよびquestion_idで質問票質問テーブルをフィルタリングするときに一意です。

質問票をロードするとき、質問票IDを指定します。これにより、質問グループのリストが表示されます。各グループには、質問のリストが含まれています(ただし、検証プロパティはありません)。

これまでのところ、私のマッピングは次のとおりです。

0 投票する
8 に答える
19936 参照

nhibernate - NHibernate:FluentNhibernateを使用して子オブジェクトを保存する

私のシステムには、ShoppingCartとShoppingCartItemの2つのエンティティがあります。かなり一般的なユースケース。ただし、ShoppingCartを保存すると、どのアイテムもDBに保存されません。

オブジェクト内に、新しいShoppingCartオブジェクトを作成します。

次に、データベースから取得した既存の製品を最初に追加します。

これは、アイテムをIListに追加するための単純なラッパーです。

次に、リポジトリでSaveOrUpdateを呼び出します

これは次のようになります:

マッピングにFluentNHibernateを使用しています。

データベーススキーマ(SQL Server 2005)もかなり一般的です。

ShoppingCartをSaveOrUpdateすると、ShoppingCartItemsも保存されないのはなぜですか?

助けてください。

ありがとう

ベン

更新:トランザクションでラップすると、さらに情報が得られます:

列'ShoppingCartId'、テーブル'WroxPizza.dbo.ShoppingCartItems'に値NULLを挿入できません。列はnullを許可しません。INSERTは失敗します。ステートメントは終了されました。

これは新しいカートだからです。

0 投票する
2 に答える
2597 参照

nhibernate - 外部キーから外部キーへの 1 対多のコレクションのマッピング

nhibernate を使用してレガシー データベースをマッピングしていますが、リレーションのマッピングに問題があります。

2つのクラスは次のようになります

このようなテーブルに

フォームコード列である 2 つのテーブル間の関係。

私の現在のマッピングはこのようなものです

マッピングを実行すると、フォームコードを質問の Id に入れようとしていると仮定して、識別子の型が一致しません。残念ながら、テーブルの構造を変更することはできません。これをマップする方法がわかりません。助けていただければ幸いです。

0 投票する
7 に答える
4090 参照

nhibernate - Hibernate/NHibernate マッピング ファイル エディター

助けてくれる編集者を探しています

http://www.hibernate.org/hib_docs/nhibernate/html/mapping.html

組み込まれており、GUI 形式で XML ファイルを簡単に編集できます。CodeSmith と MyGeneration があることは認識していますが、覚えている限り、これらは一方通行であり、既存の HBM ファイルを編集することはできません。