問題タブ [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バッグコレクションが子の「親ID」を動的に設定しないのはなぜですか?
IListとしていくつかのプロパティに新しいオブジェクトのコレクションを含む新しいオブジェクトがあります。SQLプロファイラーを通して2つの挿入クエリが実行されていることがわかります。1つは新しいGUIDIDを持つ親用で、もう1つは子用ですが、親を参照する子の外部キーは空のGUIDです。親のマッピングは次のとおりです。
Backer.csクラスで、BackerEntriesプロパティを次のように定義しました
渡されたエンティティをSaveOrUpdateしようとすると、SQLプロファイラーで次の結果が得られます。
exec sp_executesql N'INSERT INTO Backer(Name、PostCardSizeId、ItemNumber、BackerId)VALUES(@ p0、@ p1、@ p2、@ p3)'、N'@ p0 nvarchar(3)、@ p1 uniqueidentifier、@ p2 nvarchar(3 )、@ p3 uniqueidentifier'、@ p0 = N'qaa'、@ p1 ='BC95E7EB-5EE8-44B2-82FF30F5176684D'、@ p2 = N'qaa'、@ p3 ='18FBF8CE-FD22-4D08-A3B1-63D6DFF426E5 '
exec sp_executesql N'INSERT INTO BackerEntry(BackerId、BackerEntryTypeId、Name、Description、MaxLength、IsRequired、Priority、BackerEntryId)VALUES(@ p0、@ p1、@ p2、@ p3、@ p4、@ p5、@ p6、@ p7) '、N' @ p0 uniqueidentifier、@ p1 uniqueidentifier、@ p2 nvarchar(5)、@ p3 nvarchar(5)、@ p4 int、@ p5 bit、@ p6 int、@ p7 uniqueidentifier'、@ p0 = '00000000-0000 -0000-0000-000000000000'、@ p1 ='2C5BDD33-5DD3-42EC-AA0E-F1E548A5F6E4'、@ p2 = N'qaadf'、@ p3 = N'wasdf'、@ p4 = 0、@ p5 = 1、@ p6 = 0、@ p7 ='FE9C4A35-6211-4E17-A75A-60CCB526F1CA'
ご覧のとおり、子のBackerIdの空のGUIDは、親の新しい実際のGUIDにリセットされません。
最後に、例外スローは次のとおりです。
編集:解決しました!以下の最初の答えは私を正しい方向に向けました。子のマッピングとクラスにその後方参照を追加する必要がありました。これにより、純粋に.netの方法で動作できるようになりました。ただし、jsonを受け入れると切断が発生したため、子を「再アタッチ」するための奇妙なコードを考え出す必要がありました。
.net - NHibernate + JSON/Ajax 親子関係? なぜこれが機能しないのですか?
私は典型的な親子関係を持っています。ニュースの書き込み.NET
と子供NHibernate
の追加はうまく機能し、うまく機能し、正しい関係が追加されます。
ただし、JSON object
JSON を .NET 表現にシリアル化するメソッドにクライアントから a を渡すと、NHibernate が混乱するようです。親を追加するための正しいクエリを考え出します (そして Id に新しい GUID を割り当てます) が、その親 ID を実行しようとする SQL 内の子オブジェクトに関連付けません。以下にリストする簡単で汚いハックを思いつきました-しかし、私は疑問に思っていました、私がここに欠けているものはありますか?
そのようにすることが、NHibernate にこれらの子が実際にこの親に属していることを確認させる唯一の方法です。AddChild メソッドの内部は次のようになります。
編集:私はその理由に気付いたかもしれないと思います-おそらく、JSON で子の Parent プロパティを送り返していないためです。2つの循環的な性質のために、それが可能かどうかさえわかりません. 子には親がいます(jsonには、親を持つ元の子である子がいます)...何かアイデアはありますか?
c# - NHibernate ICriteria - 並べ替えは null を許可しますか?
NHibernate ICriteria を使用して .AddOrder を追加する ... ときどき null になるプロパティで並べ替え、すべてのデータが一番上に来るようにしたい。.AddOrder でこれを行うことができますか? そうでない場合、代替手段はありますか?
IList の並べ替えオプションには、多くの要望が残されています。
c# - sessionfactory のキャッシュ
私が収集した限り (読み取り: 測定)、nhibernate を使用したクエリの実行では、構成と sessionfactory の構築に最も時間がかかります。sessionfactory を静的にすることに反対するものはありますか? appDomain ごとに 1 回だけ構成されますか?
このアプローチを使用するとロックと競合の問題が発生することはわかっていますが、個人的には、セッション ファクトリでこのアプローチを使用するとアプリケーションがどこで壊れるかわかりません。
私がこれを尋ねている理由は、スレッドの問題が常に発生するわけではないため、スレッドの問題の可能性をテストするのが非常に難しいためです。
nhibernate - 検証ブロックと Nhibernate.Validator の比較
私は検証フレームワークを探しています。すでにNHibernateを使用していますが、contribプロジェクトのNHibernate.validatorを使用することを考えていますが、堅牢なMS Validation Blockも検討していますが、それぞれの詳細にはまだ触れていません。この 2 つのフレームワークに足を踏み入れた人はいますか? その経験はどのようなものですか?
nhibernate - NHibernate Query problem
I'm quite new to NHibernate and starting to find my way around.
I have a domain model that is somewhat like a tree.
Funds have Periods have Selections have Audits
Now I would like to get all Audits for a specific Fund
Would look like this if I made it in SQL
SELECT A.*
FROM Audit A
JOIN Selection S ON A.fkSelectionID = S.pkID
JOIN Period P ON S.fkPeriodID = P.pkID
JOIN Fund F ON P.fkFundID = F.pkID
WHERE F.pkID = 1
All input appreciated!
nhibernate - NHibernate を使用してデータベースとの間で列挙型をどのようにマッピングしますか?
編集:ライアンは良い点を挙げました。私は特に、人間が読める値をデータベースに保存しながら、マップを行ったり来たりできるようにしたいと考えています。つまり、データベースに多数の列挙整数は必要ありません。
c# - NHibernate 多対多関係テーブルの追加フィールド
nhibernate と多対多の関係があり、nhibernate に db スキーマを生成させると、関連するエンティティの主キーを含む追加のテーブルが追加されます。これに追加のフィールドを追加して、SQL を手動で操作することなくそれらにアクセスすることは可能ですか?
sql-server - SQL Server と NHibernate の間でカスケード更新/削除を組み合わせる方法は?
手作りのドメイン モデル (クラス) と手作りのデータ モデル (テーブル/関係) を使用してアプリケーションを作成し、NHibernate にマッピングを任せています。
データベースにカスケード更新または削除を実行するように指示するか、NHibernate に実行するように指示する (cascade="all-delete-orphan") のが最善ですか? 両方を同時に設定できますか?
nhibernate - session.Merge と session.SaveOrUpdate の違いは何ですか?
親/子オブジェクトまたは多対多の関係で、またはのいずれSaveOrUpdate
かを呼び出す必要があることに気付きMerge
ました。通常、 を呼び出す必要がある場合、呼び出しSaveOrUpdate
で発生する例外Merge
は、一時オブジェクトが最初に保存されていないことに関係しています。
両者の違いを説明してください。