問題タブ [daab]

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 に答える
976 参照

database - DAAB、データベース インスタンスを使用する最善の方法は

皆さん、私は Enterprise Library (4.1) と特に DAAB を使用します。ここに質問があります:

  1. 最善のアプローチとその理由:

    • DbCommand を実行する必要があるたびに、DatabaseFactory.CreateDatabase(); を使用してデータベース インスタンスを作成します。

    • インスタンス化されたデータベース(同じCreateDatabase()静的メソッドを使用)とインスタンス化されたデータベースを返すパブリックプロパティのようなものを持つ基本クラスがあります。

  2. Database クラスのインスタンスを作成するのはどのように「重い」または速い/遅いですか? DbCommand が必要なときに毎回実行するとどうなりますか?

ありがとうございました。

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

asp.net - ハイブリッド NHibernate DAL/BLL

Microsoft の Enterprise DAAB を DAL に使用する既存の asp.net Webforms プロジェクトがあり、いくつかの拡張機能を実装する必要があり、NHibernate を使用して作業を簡単にしたいと考えています。

ハイブリッド DAAB/NHibernate DAL を可能にする設計パターン/アーキテクチャはありますか? それは良い考えですか?

私の考えでは、ハイブリッド DAL があれば、高トラフィック/非動的クエリを DAAB 側に渡し、動的 ​​SQL 生成のオーバーヘッドを節約できます。ただし、より複雑なクエリにはまだ休止状態があります。

さらに、asp.net webforms アプリケーション用に NHibernate DAL/BLL をセットアップする最良の方法は何ですか? NHibernate サイトのチュートリアルを読みましたが、nhib セッションの開始/終了に関するコンセンサスが得られていないようです。私はベストプラクティスの例を探しています。

ありがとう

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

c# - DAAB 3.5/4.0 を使用した DAL 設計

私は .Net 3.5 Web アプリケーションに取り組んでいます。たとえば、顧客、注文などのさまざまなモジュールがあります。Enterprise Library 4.0 (データ アクセスを使用) を使用して、同じデータ アクセス層 (DAL) を設計する必要があります。アプリケーション ブロックまたは DAAB) を使用して SQL Server 2005 に接続します。

• 「IDataService」と呼ばれるインターフェースを持ちます。「ExecuteReader()」、「ExecuteScalar()」、「ExecuteNonQuery()」、「AddParams」などのメンバーを持ちます...基本的に、このインターフェースはDAAB。

• このインターフェイスを実装する「DataService」というクラスがあります。このクラスは DAAB のラッパーとして機能し、各メソッドは DAAB の対応するメソッドを内部的に使用します。

• Customer、Data などのビジネス クラス (またはデータ コンテナー) を持ち、データベース内の対応するテーブル属性にマッピングされるプロパティを持ちます。

• CustomerDataService、OrdersDataService などの各モジュールに DAL クラスを用意します。これらの各クラスには、以下のように DataService クラスをインスタンス化するコンストラクタ コードがあります。 IDataService dataService= new DataService() また、これらの各クラスには次のようなメソッドがあります。 GetCustomerDetails() AddCustomer() RemoveCustomer() UpdateOrder など。これらのメソッドは内部で「dataService」オブジェクトを使用して、データベース ExecuteReader、ExecuteNonQuery などで操作を行います。

• 「CustomerMapper」、「OrderMapper」などの各モジュールのマッパー クラスを用意します。これらのクラスはデータソース (IDataReader など) を入力として受け取り、ジェネリック コレクション (List) にデータを入力します。これらのマッパー クラスは、対応する Dataservice クラスによって内部的に呼び出され、タイプ セーフなコレクションを呼び出し元のクライアントに返します。

• 「DBNull ケースの処理」、「ストアド プロシージャ名の保存」などのタスクを実行する DbHelper などのヘルパー クラスを用意します。

• DataService クラスは、BusinessLogic レイヤ クラスによって使用されます。つまり、CustomerBusiness、OrdersBusiness などです。

• ビジネス ロジック層は、コレクションをプレゼンテーション層に返します。

この設計は理にかなっていますか?このアプローチの利点/欠点は何ですか? このアプローチの利点は、「DataService」クラスが内部でどのように実装されているかを知る必要なく、すべての DataService クラスが常にインターフェース「IDataService」に対してプログラミングされることです。したがって、将来、DAAB を削除して、内部で別の API を使用する場合DataService クラス、クライアント コードを変更する必要はありません。また、DAAB に存在しないメソッドを IDataService インターフェイスに追加することもできます。たとえば、BatchUpdate()...

私が間違っている場合は修正してください。

0 投票する
4 に答える
15493 参照

c# - DbType.Time の Datareader 結果を Timespan オブジェクトに変換する方法は?

DAAB 4.0 フレームワークで c# を使用して、datareader から dbtype.time の列タイプを持つ MS SQL 2008 データベースから結果を読み取っています。

私の問題は、MSDN のドキュメントでは、dbtype.time は timespan にマップする必要があると書かれていますが、timespan のクローズ コンストラクターだけが long を受け入れ、datareader から返された結果を long にキャストしたり、timespan に直接キャストしたりできないことです。

datareader.getTimeSpan() メソッドを示しているこの記事を見つけましたが、daab 4.0 の datareader にはこのメソッドがないようです。

では、datareader からの結果を timespan オブジェクトに変換するにはどうすればよいでしょうか。

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

asp.net - DAAB を使用した動的接続文字列の処理

私は、ASP.Net 2.0 Web アプリケーション用のデータ アクセス レイヤーを追加しようとしています。このアプリケーションは、インライン SQL 呼び出しと大量のコピー/貼り付けのみを使用して記述されています。ビジネス上の懸念により、一度にアプリケーションの小さな部分しかリファクタリングできません (落ち着いて大規模な再設計を行うことはできません)。大きな変更を加えて適切にテストする。

Enterprise Library Data Access Application Block を今後のデータ アクセス層の配管として使用することにしましたが、そのような以前の設計上の決定の 1 つが問題を引き起こしています。現在、アプリケーションの「メイン」接続文字列は、ユーザーが提供したアカウント ID に基づいて管理データベースから取得されるため、アプリケーションの 1 回のインストールで複数のデータベースにアクセスできます。私の問題は、その接続文字列 (またはアカウント ID) を DAL に取得するためのベスト プラクティスの方法を見つけようとすることです。

以前の実装では、暗号化された接続文字列を Cookie に保存していたため、現在のハック アプローチは、そこから接続文字列を取得し、次の方法で DAAB を使用することです。

Connection.GetConnectString() が Cookie から接続文字列をフェッチしている場所。

これが最善の方法ではないことはわかっており、修正する必要がありますが、それを実行するための「正しい」方法に苦労しています。接続文字列で初期化して他のすべてのクラスを継承できる基本クラスを作成するかもしれませんが、これがどのように見えるか、そのクラスのインスタンスを最初にどこで初期化するかはわかりません。DAL 関数にアクセスする前にすべてのページで?

任意のガイダンスをいただければ幸いです。ありがとうございました。

アップデート

明確にさせてください。1 つのインストールに対して、最大で 3 つまたは 4 つの異なる接続文字列が存在します。「アカウント ID」はユーザー ID ではなく、基本的に接続先のデータベースを指定するために複数のユーザーによって使用されます。

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

c# - Microsoft Enterprise DAAB とクローズ接続

内部アプリの 1 つが DAAB を使用していて、何らかの接続リークが発生しているようです。次のコードを使用したときにどこかで読んだことを覚えていると思いました:

接続が閉じられたので、調査したところ、そうではないようです。私は DAAB にあまり詳しくありません。いつ、何が起こるか知っている人はいますか? また、同じアプリには次のようなクラスがたくさんあります。

これは最初はちょっとうんざりしているように見えますが、私が言ったように、私はDAABに慣れていません. 接続が DAAB 内で自分自身を閉じていない場合、これらのクラスがリークを引き起こしている可能性はありますか?

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

asp.net - DAAB4.1を使用してデプロイされたプロジェクトのランタイムエラー

MicrosoftEnterpriseLibraryのDataAccessApplication Block 4.1を使用しようとすると、展開で奇妙な問題が発生します。DAABを利用するWebアプリケーションの要素を使用しようとすると、次の未処理の例外が発生します。

私のweb.configには、connectionStringsに関する次のセクションがあります。

また、data.configには、例外で参照されるDBNAMEのエントリが含まれています。

データアクセスにDAABを使用していないアプリの部分は、問題なく同じ接続文字列を使用しているため、接続文字列が有効であることはわかっています。さらに、他の開発者のマシンだけでなく、私の開発マシンでも問題なく動作しています。これは本番サーバーへの展開時にのみ発生し、「リリース」ビルドはローカルマシンでも正常に実行されるため、そのバージョンに固有のものではありません。

おそらく本番サーバーの構成の問題だと思いますが、それが何であるかを理解できていません。Enterprise Libraryの展開に関するMSDNの記事には、アセンブリのxcopy展開が機能するはずであり、それらを/ binフォルダーに含めているため、そこからどこに進むべきかわからないと記載されています。何か案は?

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

.net - Oracle 上の .NET TransactionScope

OracleでDAABとTransactionScopeを使用しています。私たちのアプリケーションは、1 つのデータベースへのすべての接続を管理します。このタイプの実装には「Oramts.dll」が必要なようです。MTS なしで DAAB と TrasnsactionScope を使用する方法はありますか?

ありがとう!

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

c# - DAABとC#を使用してOracleプロシージャから複数の参照カーソルを返す

Oracle プロシージャからデータを返して、いくつかのラベル コントロールに入力したいと考えています。このプロシージャは、26 個の入力パラメータ (検索変数) を受け入れ、3 つの出力カーソルを返します。OracleCommand、DataAdapter、および DataSet を使用して単一の ref カーソルを返すプロシージャからデータを返すことに成功しましたが、複数の ref カーソルを返すプロシージャからデータを返すあらゆる種類の問題がありました。

Enterprise Library から DAAB を使用しようとしましたが、成功しませんでした (元の投稿)。Oracle や他の開発サイトからの投稿に基づいて、OracleCommand に戻りました。私はまだゼロ行を返しています。「rdr_p_cursor_detail.GetName(0);」を使用してリーダーから列名を返すことができますが、値を返そうとすると「オブジェクトの現在の状態のため、操作は無効です」というメッセージが表示されます。エラー。

切り捨てられたオラクルの手順:

何か案は?不適切なリーダーの使用に傾いていますが、何が欠けているのかわかりません。ありがとう。

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

.net - データ アクセス アプリケーション ブロック (DAAB) と SQL IN キーワード (複数の基準)

私は Patterns and Practices Data Access Application Block を使用しており、IN キーワードを使用して SQL で実行できるように、複数の基準を使用して SELECT を実行できるようにしたいと考えています。そのような:

@keys 値を渡すにはどうすればよいですか? SQL を動的に構築する必要はありません。

Oracle データベースに対してクエリを実行しています。

さらに、DAAB に適したクエリを実行する別の方法はありますか?

ありがとう、キース