問題タブ [fluent-nhibernate]
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.
nhibernate - Nhibernate: 多対多の関係を作成して 1 対 1 としてマップする
単方向の 1 対 1 の関係を持つ 2 つのアイテム A と B があります。(A には B が 1 つあります)
データベースでは、これらは ATable と BTable で表され、ABTable でリンクされています。(データベースのセットアップから、多対多の関係があるように見えますが、そうではありません。正規化の理由でこのように行われました)。
問題はこの設定によるものです。エンティティ間の多対多の関係として NHibernate をマップすることしかできませんでした。エンティティに1対1の関係を持たせる方法はありますか?
私が考えることができる最善の方法は、多対多の関係を持っているままにして、AエンティティにBのリストを返す2つのプロパティを持ち、マッピングを満たす2番目のマップされていないプロパティを取得することです私のアプリケーションを満たすために、リストの最初のB。-しかし、これはエレガントではないようです。
nhibernate - Fluent NHibernate を使用してテーブル インデックスを生成する
Fluent NHibernate を使用して、残りのデータベース スキーマと共にテーブル インデックスを生成することは可能ですか? 自動化されたビルド プロセスを介して完全なデータベース DDL を生成できるようにしたいと考えています。
fluent-nhibernate - 流暢なnhibernateでgenerate_statistics = trueを設定する方法
私が理解していることから、私はこれで終わる必要があります
セッションファクトリ構成についてですが、流暢なnhibernateでそれを行う方法がわかりません。
c# - Fluent nHibernate 構成
流暢なnHibernateを構成しようとしていて、このコードがあります
実行すると、「FluentNHibernate.Cfg.FluentConfigurationException: SessionFactory の作成中に無効または不完全な構成が使用されました」というメッセージが表示されます。
このコードを使用すると機能しますが、モデル アセンブリを nHibernate セッション マネージャーを持つコア アセンブリから直接参照したくありません。
誰か助けてくれませんか?
c# - MySQL で流暢な nHibernate を構成する方法
MySql データベースを使用するように nHibernate を構成しようとしています。mssql と sqlite の例は見つかりましたが、mysql の例は見つかりませんでした。では、mysql を使用するようにこれを変更するにはどうすればよいですか。
nhibernate - NHibernate はクエリを 2 回続けてログに記録し、実行します。
私が使用している: NHibernate、NHibernate.Linq、および SQL Server Express 2008 上の Fluent NHibernate。参照されたプロパティ (多対一マッピング) の述語を使用してエンティティを選択しています。fetch=join、unique=true、lazy-load=false があります。log4net ログを有効にすると、そのようなクエリが実行されると、2 つの同一の SQL クエリがログに記録されます。クエリを実行すると 1 行が返され、IQueryable.Single 拡張メソッドを使用しようとすると、複数の行が返されたことを示す例外がスローされます。また、標準の IQuery.UniqueResult メソッドを使用して同じ結果でクエリを実行しようとしましたが、最終的にログに記録され、実際にクエリを 2 回実行してから、複数の行があることを示す例外をスローしましたが、管理スタジオで実際のクエリを実行すると、返されるのは 1 つだけです。 1つの結果。ロギングを無効にすると、同じエラーが発生します。
エンティティとマッピングは次のように宣言されます (適切なアクセス修飾子とメンバー型の差異が暗示されます)。
次に、次のようなクエリを呼び出します。
いずれの場合も、2 つの同一のクエリを実行します。遅延読み込みを有効にすると、クライアントは再び 2 つのクエリを使用して読み込まれますが、Person などのメンバーにアクセスすると、追加のクエリが 1 つだけ実行されます。
これは、Fluent が不適切なマッピングを生成した結果である可能性がありますか? または、SQL Server Express エディションが NHibernate によって適切に使用されていませんか?
nhibernate - Fluent NHibernate オブジェクト化された関係マッピング
私のシナリオ、オブジェクト化された関係を持つ多対多のマップをサポートするように NHibernate を構成する方法についての回答を探しています。
他の Person:s との関係を持つ Person:s のコレクションがあります。各関係には、関係のタイプを指定する属性があります。RDB では、これは、テーブルで指定された関係タイプを持つ多対多テーブルを使用することによって行われます。モデルは、「親友」や「大敵」などのより多くのタイプを許可することで拡張できます。
Person オブジェクトをクエリして、関連するすべての Person をタイプ別に返すことができるようにしたいと考えています
また
別の (拡張性の低い) 解決策は、クラスで静的に他の関係が存在することを指定することです。
現在、「Person」テーブルと「PersonPerson」テーブルを備えたレガシー データベースを使用する必要があります。「PersonPerson」テーブルは、関係タイプを整数として保持します。
以下のような構文を使用してこれを実行しようとしましたが、これまでのところ成功していません...
これを(流暢な)NHibernateでマッピングするためのヒント/解決策はありますか?
ブラジル
/イェンス
c# - Fluent NHibernate で PersistenceSpecifications によって作成されたレコードをロールバックする
Fluent NHibernate を学んでいて、半素晴らしい PersistenceSpecification クラスに出くわしました。
マッピングを検証するために単体テストでセットアップしましたが、うまく機能します。ただし、完了時にレコードがデータベースに残ります。変更をロールバックできるようにトランザクションにスローしようとしましたが、エラーが発生します。
System.ObjectDisposedException: 破棄されたオブジェクトにアクセスできません。オブジェクト名: 'AdoTransaction'..
トランザクションがなければ、レコードの ID を把握し、それらを取得して削除する必要がありますが、これはあまり洗練されていません。
何かご意見は?
編集:
コード スニペットは次のとおりです。
nhibernate - Fluent NHibernate HasManyToMany および NotFound
次の FNH マッピング フラグメントがあります。
これにより、次の HBM が生成されます。
問題は、私がレガシ データを扱っていることです。つまり、「理想的ではない」とだけ言いましょう。一部のレコードには無効な ID が含まれているためnot-found="ignore"
、バッグ内の多対多タグに属性を配置する必要があります。FNHでこれを達成する方法はありません。
オンザコールはありますが、.NotFound.Ignore()
オンザコールReferences()
はありませんHasManyToMany
。
誰かが私に欠けているものを教えてもらえますか? 属性がレンダリングされた後/NHを構成する前に属性を「注入」するのがハックであっても、それが機能する必要があります。
前もって感謝します。
UPDATE gcores の回答は機能しません。間違ったタグに追加されます。詳細については、彼の回答に関する私のコメントを参照してください。