問題タブ [automapping]
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 - エンティティ内の同じタイプの複数のリストで Fluent NHibernate Automapping を使用するにはどうすればよいですか?
NHibernate は、エンティティ内の特定のタイプの複数の IList を自動マップできないようです。
次の 2 つのエンティティを検討してください (Fluent NHibernate ソース コードに含まれている Examples.FirstProject サンプル コードに基づく)。
これは完全に有効なオブジェクト モデルのように思われます。各店舗には数人の従業員と管理職がいます。
しかし、自動マップすると、Staff と Managers のリストが Employee テーブルに格納され、すべて同じ外部キーが使用されます。
最終的な結果として、データがデータベースから読み戻されると、Staff リストと Managers リストの両方にテーブルのすべての行が取り込まれます。
これは私には Automapping のバグのように見えますが、私はどのような形であれ NHibernate にかなり慣れていないため、それが制限であることをまだ完全には知りません。
いずれにせよ、NHibernate に 2 つのリストを別個のものとして扱わせるにはどうすればよいでしょうか?
可能であれば、私が提供したサンプル コードに直接対応する Automapping コード フラグメントをいただければ幸いです (たとえば、「この正確なオーバーライドを CreateSessionFactory の .Mappings セクションに入れる」など)。
これは、私が Automapping にある程度慣れているだけで、古い方法にはまったく慣れていないためです。つまり、まだ「空白を埋める」ことができていません。
しかし、私を正しい方向に向ける時間があれば、それも役に立ちます.
いくつかのコンテキストを提供するために、これが私の CreateSessionFactory コードです。
c# - 双方向マッピング用のシンプルなコンベンションオートマッパー(ViewModelsとの間のエンティティ)
更新:このようなものは素晴らしいプロジェクトに進化しました。http: //valueinjecter.codeplex.comで参照してください。
これをチェックしてください。私は単純なオートマッパーを作成しました。これは、あるオブジェクトの同じ名前とタイプのプロパティから値を取得し、それを別のオブジェクトに配置します。必要なタイプごとに例外(ifs、switch)を追加できます。
それで、あなたはそれについてどう思いますか?
私はそれをしたので、私はこのようなことをすることができました:
それが始まった方法です:
DropDownsのInputs/Dto / ViewModelsで「object」タイプを使用します。これは、HTMLにIEnumerable <SelectListItem>を送信し、選択したキーの文字列配列を受け取るためです。
更新:
実際の使用法:
ビルドメソッド(入力= Dto):
コントローラ内:
実際のMapメソッド
c# - Fluent NHibernate は、外部キー参照で Not Nullable を強制します
いくつかの Fluent NHibernate AutoMap 規則に足を踏み入れただけで、理解できないことに遭遇しました。私は正しい場所を見ていないだけだと思います...基本的に、1対多の関係の「多」側でNOT-NULLを強制しようとしています。自動マッピングを使用すると、データベースで親プロパティ Id が常に null 可能になるようです。
StackOverFlow で検索を行ったところ、同様の質問が見つかりましたが、AutoMapping と規約に関連するものはありませんでした (見逃していない限り)。
簡単な例...
次のようなコンベンションを作成できると思いました...
しかし、 IOneToOnInstance には Nullable() メソッドがないようです。ジョブ用の Map ファイルを作成すればこれを実行できますが、Map ファイルを避けて自動マッピングに固執しようとします。
Fluent グループ リストで、似たようなことを説明しているこのリンクを見つけました。
このようなことを説明しています...
しかし、それは次のような問題を提起します...
2)そのページで、これを使用すると手動のオーバーライドがオーバーライドされることが言及されました。非常に具体的なプロパティ リンクを NULL にする必要がある場合。どちらが問題になるか (まだ問題であるが、最初に #1 を把握しないとテストできない場合)
これに関するアイデアはありますか?何か足りないだけですか?
更新 1
まだ行きません。以下でも、データベーススキーマで Not-Nullable を強制していません...
ただし、他のすべてのフィールドについては...
/shrug
何か案は?
更新 2
これは私が探していた答えではありませんが、回避策を見つけました... NHibernate Validator アセンブリを使用していましたが、そのアセンブリ内に [NotNull] 属性があります。クラスを Validator 属性で装飾し、スキーマを作成する前に ValidationEngine を NHibernate に関連付けると、FK データベース列に Not-Nullable のタグが付けられます。
NHibernate + ValidationEngine の初期化の完全なコードが必要な場合は、お知らせください。誰かが情報を持っている場合でも、純粋なマッピング規則ルートを使用してそれを行う方法をまだ探しています...
ありがとう!
asp.net-mvc - S#arpアーキテクチャの多対多マッピングオーバーライドが機能しない
S#arpアーキテクチャでM:Mマッピングを機能させるために、ほとんどすべてを試しました。残念ながら、NorthwindサンプルプロジェクトにはM:Mオーバーライドがありません。
S#arpに変換し、Fluent NHibernateの自動マッピングを選択する前に、私のプロジェクトではすべて正常に機能しました。私は自動マッピングが好きです、それは良いです、しかしオーバーライドは登録されていないようです。
それはすべてメモリとテストで機能するようですが、データベースにデータをコミットするとき、M:M参照テーブルには何も挿入されません。
カテゴリの単純なサンプルを取得すると、多くの製品を含めることができ、製品を多くのカテゴリに含めることができます。Category_id列とProduct_id列を持つCategoryProduct(複数形化は好きではありません)というテーブルがあります。
私の自動永続性モデルは次のように生成されます。
カテゴリのマッピングオーバーライドは次のようになります。
また、製品には次のようなマッピングオーバーライドがあります。
M:Mマッピングを構造化する多くの組み合わせを試しましたが、何も機能しません。
この記事では、更新FHNを使用してS#arpを再コンパイルすることを提案しています。これを試しましたが、最新のFHNコードは、S#arpで使用されているコードとは大きく異なります。すべての重大な競合を修正しましたが、それでも機能しません。
うまくいけば、他の誰かがS#arpでのM:M自動マッピングオーバーライドの問題に遭遇して解決しました。
c# - 値オブジェクトリストのFluent NHibernate規約とは
値オブジェクト リスト (この場合は IList) の規則がどうなるかを理解しようとしています。ここに私のドメインモデルのコードフラグメントがあります:
私の自動マッピングは次のように設定されています:
を使用しているすべての場所でそれを行う必要がないように、 と のオーバーライドを規則にし.Table()
たいと思います。を作成できると思いましたが、このマッピングには影響しないようです。カスタム クラスにブレークポイントを設定しましたが、プロパティが壊れません。このオーバーライドを自動化するためにどの規則を使用する必要があるか教えてもらえますか?.KeyColumn()
IList<string>
IHasManyConvention
HasManyConvention
Options
c# - 既存の DB と Fluent NHibernate 自動マッピングから C# エンティティを生成
私は、いくつかの非常に醜い規則を使用する既存のデータベースを使用しています。NHibernate を使用したいのですが、Fluent NHibernate の自動マッピング規則を使用して、これらの醜い DB 規則をすべて修正できると思います。すべてのエンティティ クラスを手動で記述することは避けたいと思います。(これが LINQ to SQL と SubSonic の魅力です)
Fluent NHibernate で指定されたデータベース スキーマとマッピングに基づいて C# エンティティを生成することはできますか?
余談ですが、NHibernate の設計者をご存知ですか?
c# - 親をFluent NHibernateの子のプロパティとして保持することの欠点は何ですか?
Fluent NHibernate/Automapping を使用しており、コレクションを持つクラスがあり、そのコレクション内の各アイテムには独自のコレクションがあります。
これはこの質問に関連しており、回答はありませんでしたが、OPが親オブジェクトを子オブジェクトに保持し、それを非nullとしてマークすることで解決されました。
これは、Fluent NHibernate で外部キーを null 以外に設定する唯一の方法ですか? おそらくばかげた質問ですが、親オブジェクトが何であるかを知る理由はないので、これらのプロパティを持っていても役に立たないでしょう。これが唯一の方法である場合、これを行うことに不利な点はありますか? 私のコードが代わりに関係を処理できれば、それだけの価値があるでしょうか?
nhibernate - リストの流暢なNHIbernate自動マッピング?
Fluent NHibernateはこれを嫌い、エラーをスローします。
{"関連付けはマップされていないクラスを参照します:System.String"}
OK、これで問題が発生する理由はわかりますが、最善の解決策は何ですか?
区切られた文字列のリストを単一のフィールドに格納することは本当に望ましくありません。リストに多くの文字列が含まれていると、これは醜くなります。
また、明らかな理由から、テーブルの「文字列」は必要ありません。
クラスの中に包むことでこれを解決できると思いますList<string>
が、これは少し重い感じがします。しかし、私はそれが最善の解決策だと考え始めています。
Fluent NHibernateにこれを処理させるための最良の方法は何ですか?
これらの値が別のテーブルに格納されることを完全に期待しています。NHibernateに指示する自動マッピング規則を設定できたのではないかと思いました。'class X
を含むが表示された場合はList<*some primitive type*>
、先に進んで、このコレクションにマップする参照テーブルを自動的に作成してください。
クラス内のすべてのコレクションをラップするのは少し重いと感じます。ただし、それが最善の解決策である場合は、そうしてください。
configuration - Fluent NHibernate 自動マッピングを使用して辞書をマップするにはどうすればよいですか?
私は次のようなエンティティを持っています:
次のコードで自動マッピングを使用しようとするたびに:
次のエラーが表示されます。
誰かが私が間違っていることを教えてもらえますか? また、これは簡単な例です。私はこの辞書以外にもたくさんの辞書を持っています。
fluent-nhibernate - Fluent NHibernate規則を使用して、すべてのICollectionをセットとしてマップすることは可能ですか?
Fluent NHibernate規則を使用して、すべてのICollectionをセットとしてマップすることは可能ですか?私はそのようなエンティティを持っています:
流暢なマッピングでは、このプロパティはとしてマッピングされHasMany(x => x.Animals).AsSet()
ますが、オートマッパーで使用したい規則を使用してこれを行うにはどうすればよいですか?
これをデフォルトで追加し、ICollections
として永続化する必要があります。ILists
にキャストしようとすると、キャスト例外が発生HashSet
しIList
ます。