問題タブ [llblgenpro]
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.
c# - LlblGenPro でエンティティをマージする標準的な方法
主キー A1 を持つエンティティ A から始めます。子コレクション B と C がありますが、プリフェッチしていないため、それらは空です。子コレクション B と C が満たされた主キー A1 を持つ A (A プライム) の新しい出現を取得します。
A と A 素数を同じオブジェクトにし、B と C の A コレクションを埋める良い方法は何ですか?
c# - LLBLGen: エントリをソフト削除するにはどうすればよいですか
DB層にLLBLGen Proを使用しているプロジェクトを継承しています。DB モデルでは、エントリが削除されたときにフラグが必要です (DeletedDate は現在の時刻に設定されます)。最後のプログラマーはこの要件を無視し、アプリケーション全体で通常の削除を使用しました。
これを自動的に行うようにコード ジェネレーターを設定する方法はありますか、それとも必要なエンティティの各削除演算子をオーバーロードする必要がありますか?
c# - 文字列を使用して動的に (LLBLGen) Linq クエリを作成する
コーディング中 (設計時) に 100% 不明な LINQ クエリを生成する必要があります。これは、データ プロジェクトから 100% 分離されたフレームワークでロジックが利用できるためです。データには、LLBLGen で生成されたデータ アクセス コードを使用します。
通常、フレームワークに指定する (参照ではなく) DLL で呼び出しを使用することにより、データを取得するコードを作成できます。しかし今、これを linq で行う必要があります。次のようなクエリを作成するにはどうすればよいでしょうか。
文字列のみから。「customer」という文字列が 1 つあるため、Customer から取得する必要があることがわかります。次に、取得したいフィールド名を含む string[] を取得します。ご覧のとおり、これらの列には複合型 (関連フィールド) が含まれる場合があります。
特にLLBLGenと組み合わせたアドバイスは素晴らしいでしょう!
ありがとう、ギャブ
database - LLBL Gen Pro 2.6 と監査
私は LLBL Gen Pro v2.6 を使用しており、データベースに加えられた変更を監査する手段を作成しようとしています。これで、LLBL Gen には、AuditorBase と依存性注入を使用した監査機能が組み込まれていることがわかりました。私が持っている質問は次のとおりです。LLBL Gen が監査可能として公開するものだけでなく、変更を行ったユーザーも追跡する必要があります。私が見たところ、この情報を収集する組み込みの方法はありません。LLBL Gen のビルトイン監査を使用して、これを行う方法を決定した人はいますか?
ウェイン・E・フェファー
c# - ビジネス ロジック層でデータ転送オブジェクトを設計する方法
DTO
多くのユーザーに拡張したい Web アプリケーションを構築しています。また、Web サービスを介して信頼できるサード パーティに機能を公開する必要があります。
LLBLGen を使用してデータ アクセス レイヤーを生成しています (SQL Server 2008 を使用)。目標は、Web アプリを DAL の詳細から保護するビジネス ロジック層を構築すること、そしてもちろん、DAL を超えた追加レベルの検証を提供することです。また、現時点でわかる限り、Web サービスは基本的に BLL のシン ラッパーになります。
もちろん、DAL には独自のエンティティ オブジェクトのセット (CustomerEntity、ProductEntity など) があります。ただし、これらのオブジェクトには DAL 固有のメソッドが含まれており、アセンブリは DAL に固有であるなどの理由から、プレゼンテーション レイヤーがこれらのオブジェクトに直接アクセスできるようにしたくありません。したがって、アイデアはデータ転送オブジェクト (DTO) を作成することです。アイデアは、これらは本質的に、実際にはデータベース テーブル Customer である CustomerEntity のすべてのフィールドを持ち、おそらく一部の IsChanged/IsDirty プロパティを除いて、他のものではない単純な古い C#/.NET オブジェクトになるということです。したがって、CustomerDTO、ProductDTO などがあります。これらは基本 DTO クラスから継承されると思います。LLBLGen のテンプレートを使用してこれらを生成できると思いますが、まだ確信が持てません。
そのため、BLL はこれらの DTO オブジェクトを受け入れて返すことにより、その機能を公開するという考え方です。Web サービスは、それを使用するサード パーティのためにこれらのオブジェクトを XML に変換することを処理すると思いますが、多くは .NET を使用していない可能性があります (また、JSON を使用して、Web アプリの AJAX 呼び出しからスクリプトを呼び出すことができるものもあります)。
これを設計する最善の方法と、正確にどのように進めるかはわかりません。ここにいくつかの問題があります:
1) これをクライアントにどのように公開する必要があるか (プレゼンテーション層と Web サービス コード)
これらのメソッドを持つ1つのパブリッククラスがあり、すべての呼び出しがアトミック操作になると考えていました:
InsertDTO、UpdateDTO、DeleteDTO、GetProducts、GetProductByCustomer など...
次に、クライアントはこれらのメソッドを呼び出して、適切な引数 (通常は DTO) を渡します。
これは良い、実行可能なアプローチですか?
2) これらのメソッドから何を返すか? 明らかに、Get/Fetch のようなメソッドは DTO を返します。しかし、インサートはどうですか?署名の一部は次のようになります。
ただし、何を挿入するときに何を返す必要がありますか? エラーの通知を受け取りたい。ただし、一部のテーブルには自動インクリメント主キーを使用します (ただし、いくつかのテーブルには、特に多対多の自然キーがあります)。
私が考えた 1 つのオプションは Result クラスでした。
したがって、挿入時に、DTO は get ID (CustomerDTO.CustomerID など) プロパティ セットを取得し、この結果オブジェクトに配置します。クライアントは、Result.Error != null の場合にエラーがあるかどうかを認識し、Result.AffectedObject プロパティから ID を認識します。
これは良いアプローチですか?1 つの問題は、冗長な大量のデータをやり取りしているように見えることです (ID だけの場合)。一部の挿入にはそのような自動インクリメントキーがないため、「int NewID」プロパティを追加してもきれいになるとは思いません。もう 1 つの問題は、Web サービスがこれをうまく処理できるとは思わないということですか? 派生DTOではなく、ResultクラスのAffectedObjectのベースDTOを返すだけだと思います。さまざまな種類の Result オブジェクト (おそらくベースの Result から派生し、Error プロパティを継承する) をたくさん持つことでこれを解決できると思いますが、それはあまりきれいに見えません。
わかりました、これが言い過ぎではないことを願っていますが、明確にしたいと思います。
transactions - LLBLGen Pro での取引
LLBLGen Pro 2.5 をセルフサービスで使用しています。トランザクション内でテーブルにいくつかの行を追加し、追加した最初の行を更新したい場合、その最初のエンティティをトランザクション オブジェクトに再度追加する必要がありますか?
これが私が言いたいことの架空の例です:
どんなアドバイスでも大歓迎です!
asp.net - llblgen データ ソースで複数のフィルターを使用できますか?
LLBLGen データ ソースから検索結果をフィルター処理する次の (サンプル) コードがあります。
これは正常に機能し、このコードをトリガーすると結果がフィルタリングされます。ただし、2 番目のフィルターを追加すると、結果を表示する前にコードの呼び出しを 2 回押す必要があります。以下は、2 つのフィルターを含むスニペットです。
この問題は、最初の検索以降のすべての検索で問題ありません。ただし、最初のもので動作する必要があります。
更新: コードは ASP.Net ボタン クリック イベントにあります。ページ読み込みイベント ブロックにも、このデータ ソースに影響を与えるコードはありません。
何か案は?
c# - LLBLGen を使用して条件付きでテーブルを結合するにはどうすればよいですか?
必要な結果のタイプを返す次の Sql クエリがあります。
本質的に、Table2 (b) のデータをリストする一方で、Table1 (a) に等しい行数が必要です。または、条件「test」が Table2 に存在しない場合は NULL が必要です。
私はLLBLGenにかなり慣れていないので、いくつか試してみましたが、うまくいきません。条件が存在する場合、動作させることができます。ただし、要件の変更が発生し、クエリを上記のように書き直さなければならなくなったとき、途方にくれました。
以下は、既存の製品では機能したが、上記のクエリでは機能しなかった古い LLBLGen C# コードです。
テーブル 1 には 3 つのレコードがあります。条件が存在しないため、表 2 のすべての項目が NULL であっても、3 つのレコードが必要です。何か案は?
linq - linq に変換すると、この SQL クエリ (w カウントとグループ化) はどのようになりますか?
linq に変換すると、次の SQL クエリはどのように見えるでしょうか?
私は次のことを試しました:
ただし、「キー」という名前のマッピングを持つ db 関数がないことを示す列挙で例外が発生します。この特定のアプリで LLBLGen を使用していますが、そこに問題の根源があると思われます。ただし、掘り始める前に、linq 構文が正しいことを確認したいと思います。誰かが何か間違っていると思いますか?