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

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

fluent-nhibernate - Fluent NHibernate + AutoMappings: 生成された SQL の謎の列

NH から SQL クエリを取得していますが、存在しない列が生成されています (したがって、NH から ADOException が生成されます)。

CreatedBy私の問題は、列がどこから来ているのか分からないことです。これが私のクラス構造です。

アプリの起動時に構成を調べるとColumnIterator、Role クラス マップの が表示されます。ディクショナリには、id、user_id、roledescription、createdby_id の 4 つの項目があります。したがって、クエリは構成に基づいて正当ですが、クラスに基づいて構成を理解できません。

はい、ASP.NET DLL キャッシュをクリアし、bin ディレクトリと obj ディレクトリを削除しました。

編集#1

これは私のFluently.Configureステートメントです

そして、これは私の呼びかけですGetPersistenceModel()

私のカスタム構成は、パブリック自動プロパティのみをマップするように言っています。これは、他の計算されたプロパティをドメイン エンティティに追加できるようにするためです。ユーザー マップのオーバーライドは、テーブル名が[User]であることを確認しますUser。カスタム HasMany 規則セットは、すべてに多数の関係がある場合に、すべて-削除-孤立をカスケードします。

編集#2

これはさらに良くなります。これは、構成オブジェクトを作成した後で、セッション ファクトリ オブジェクトを作成する前の列反復子です。

セッションファクトリー前

見る?createdby_idマップされた列のリストに列がありません。これは、セッション ファクトリ オブジェクトを作成した後の列反復子です。

セッション工場の後

そして今、createdby_idコラムがあります。私は今本当に迷っています。

編集 3

わかりました、私は今何かに乗っていると思います。

先週、顧客から新しい要件を受け取りました。その要件は、誰が課題を作成したかを知りたいということでした。したがって、次のような新しいプロパティがあります。

私の割り当てテーブルには、このような列があります。

そして、この新しい列には User テーブルへの FK があります。

このプロパティをコメントアウトすると、すべてが再び機能します。user_idSQL は、まさに私が期待する方法で、によるクエリに戻ります。これがこのように起こらないようにするために使用できるオーバーライドのタイプはありますか?

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

nhibernate - NHibernate のコレクションからの削除操作を永続化する

コレクション (リストなど) からいくつかのオブジェクトを削除 (または削除) し、このコレクションの親から SaveOrUpdate を呼び出すと、子の行は削除されませんが、外部キーの値を NULL に設定することによって更新されます。

強制的に削除するにはどうすればよいですか (子行)。

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

fluent-nhibernate - 流暢なnhibernateを使用して多対1の関係を自動マッピングするにはどうすればよいですか

私は次のクラスを持っています:

このクラスを流暢なnhibernateで自動マッピングするにはどうすればよいですか。

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

oracle - fluentNhibernate 自動マッピングの変更で制約名を変更します

私は変更を伴うFluentNHibernate自動マッピングでオラクルを使用しています&NHibernate問題は、マッピングモデルをオーバーライドして制約名を指定する方法です??

次のような生成されたSQL:

次のようにマッピング モデルをオーバーライドして、「FK_VerLongIdentifierLongerThan30Characther」をより小さな識別子に変更する必要があります。

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

.net - AutoMapperを使用した複雑なDAL->BLマッピング

次のプロジェクトでAutoMapperを使用することを検討しており、考えられる「ボトルネック」を見つけようとしています。現時点で私が想像できる最も複雑なケースは次のとおりです。データベース内の3つの(たとえば)テーブルで表されるドメインクラス(私のデータアクセス層はLINQ to SQLです)。クラスのインスタンスを構築するには、3つのクエリを実行する必要があります。

  1. 表AからIDで選択(1行、Classプロパティに直接移動)
  2. 表BからIDで選択(0..1行、オプションのClass.Codeプロパティに移動)
  3. テーブルCからIDで選択(0..N行、Class.Parametersコレクションに移動)

そして、マッピングを構成する方法がわかりません。私が検討したオプションは次のとおりです。

  1. 3つのクエリを実行してマップTuple<A,B,C>->Class
  2. 外部結合を使用してクエリ1と2を結合します(より効果的)。しかし、匿名タイプで何をしますか?
  3. マッピングにデータコンテキストを挿入し、定義A->Classマッピングして、型コンバーターに仕事を任せますか?

勝利のように見えるものはありません。あなたは何を提案しますか?

編集:まあ、そのような複雑なケースは非常にまれであり(10-20%)、私はそれらを手動で行うことができ、残りはAutoMapperで80-90%うまくいきます。しかし、AutoMapperがそのような戦略のために設計されていないのか、それとも重要な何かが欠けているのかを知りたいのですが。

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

fluent-nhibernate - Fluent NHibernate FluentMappings でフィルターを定義することは可能ですか?

Fluent NHibernate で自動マッピングを使用すると、次のようなことができます。

FluentMappings で似たようなことができるように探していますが、同様の動作 (名前空間でのフィルタリング) を理解できないようです。

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

fluent-nhibernate - Fluent NHibernate-自動マッピング:単一のプロパティにnullを許可

私はこの質問が何度も同じような形で提起されたことを知っていますが、どのスレッドも私の質問に対する具体的な答えを私に与えることができませんでした。

Fluent NHibernateとFluentの自動マッピングを使用して、ドメインエンティティをマッピングします。現在、私はこの規則クラスを使用して、すべてのプロパティをNULL以外に設定しています。

大きな問題は次のとおりです。

エンティティクラスの単一のプロパティをNULLにするには、何をする必要がありますか?

これが私のエンティティクラスの1つです。

誰かが最終的に私を助けてくれるなら、私は本当に嬉しいです!Googleのリターンページに入力した可能性のあるすべての検索文字列で、既にアクセス済みとしてマークされています...

ありがとう、
アルネ

編集:タイトルを変更しました...単一のプロパティにNULLを許可したい

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

c# - 集約ルートの流暢なNHibernateカスケード削除規則

質問は次のとおりです。型から継承する場合にエンティティ参照を削除しないようにする規則を作成するにはどうすればよいRootですか。


私は流暢なnhibernateを使用しており、それは自動マッピング機能です。デフォルトでカスケード削除をオンにしました。

別のルートを参照する集約ルートを実際に削除する必要がある場合に最終的に問題が発生するまで、すべてが本当にクールでした。

私はルーツを手に入れましUserApplicationUserレジスタApplicationsUser誤って登録された場合、ロールで削除できる時間差がわずかにありAdminます(そのデータは必要ないと確信しています)。

User削除Applicationすると、カスケード削除のため、nhibernateはUserそれ自体を削除します(皮肉なことに...)。


[アプリケーション]->[ユーザーの関連付け]のみにカスケードするSaveUpdateを指定する方法がわかりません。

代替テキスト


トリックを行います:

さらに、オーバーライドを探す場所をfnhに伝えました。

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

nhibernate - Fluent NHibernate:自動マップされた文字列コレクションの基になるSQL型をどのように変更しますか?

私はクラスを持っています:

' IList<string> ChildPages'がFluentNHibernateによって自動マップされると、コレクション内の各文字列のバッキングフィールドを使用して' ChildPages'結合テーブルが作成されます。nvarchar(255)

しかし、問題は、SQLバッキングフィールドを' text'にしたいので、このエンティティの長いエントリを持つことができるということです。

この変更を行う最も簡単な方法は何ですか?

自動マッピングされたプリミティブコレクションの基になるタイプをどのように変更しますか?

また、追加のポイントについては、規則またはマッピングのオーバーライドを使用してこれをどのように行いますか?

どうも!

0 投票する
3 に答える
666 参照

fluent-nhibernate - BuildSessionFactory行の自動マッピングとFNHの例外

vs2008で最新バージョンの自動マッピングとFNHを使用していますが、この例外が発生しました

まず、例外は有益ではありません!どのクラスがこのエラーを引き起こしているのかわかりません。

第二に、どうすればこの問題を解決できますか?それは私が持っている抽象的な'description'プロパティのためですか?