問題タブ [data-access-layer]

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 投票する
3 に答える
238 参照

unit-testing - データ アクセスの永続化メソッドのテスト

自分のデータアクセス方法をテストする方法について誰かがアイデアを持っているかどうか疑問に思っています. 検索データ アクセス メソッドのテストがはるかに簡単であることがわかりましExecuteReaderdataTable.CreateDataReader()。これにより、結果セットが返された場合に、オブジェクトが正しく設定されているかどうかをテストできます。

しかし、これを永続化メソッド (つまり、追加、更新、削除など) にどのように変換すればよいでしょうか。テストしたいのは、コマンドパラメーターが正しく設定されているかどうかなどです.

何か案は?乾杯

0 投票する
11 に答える
2012 参照

.net - 新しいプロジェクトに LINQ to SQL を使用しますか?

私は、設計中の新しい Web ベースのプロジェクトにどのデータ レイヤーを使用するかを調査しており、LINQ to SQL の組み込みに非常に関心があります。その明白な単純さ、柔軟性、およびデザイナーのサポートは本当に魅力的であり、SQL Server への暗黙の結び付きは問題ありません。

ただし、LINQ to SQL は ADO.NET チームに渡されたため、Entity Framework の後ろに座ることになることが最近発表されました ( http://blogs.msdn.com/adonet/archive/2008/10 /29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx )。もちろん、将来サポートされる予定ですが、さらに多くの開発作業が行われる可能性は低いです。

これを念頭に置いて、私のプロジェクトにこのテクノロジを使用することをお勧めしますか?それとも、代替の ORM (nHibernate?) を選択するか、汎用 DAL を手動でコーディングする価値がありますか?

プロジェクト自体は ASP.NET および SQL Server 2005/2008 ベースで、まだベータ版ですが、MVC を使用する可能性があります。これは個人的なプロジェクトであり、データベースはそれほど複雑ではなく、主に .NET の将来の技術を見るためのプロトタイプとして使用されます。ただし、今後のプロジェクトは、このプロジェクトから学んだことをベースにしているので、私が行う選択は、今後のより大きなソリューションに影響を与えます。

はい、いずれにせよ、Microsoft はおそらくまったく新しいデータ アクセス テクノロジを明日発表するでしょう! ;)

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

.net - WCFを介してLinqToSqlで子オブジェクトを維持するにはどうすればよいですか?

私は現在、このソリューションの設計に固執しています。

データレイヤーの設計は、次のもので構成されています。

  • レシピ(親の高レベルオブジェクト)
    • 言語の詳細(名前、言語による説明)(多く)
      • ヘッダー(多く)
      • ステップ(多く)
        • 材料(多く)
        • 数量(多く)
        • 手順(多く)
      • ノート(多く)

私が抱えている課題は、オブジェクトがWCF SaveRecipe(recipe)メソッドから入力されたときに、データベース内の子オブジェクトを追加/削除するデータアクセスデザインを作成する方法です。

これはすべて、アプリケーションに通信レイヤーを追加するように求められた管理者から生じています。現在、UIはビジネスレイヤーに結合されており、BLはDALに直接結合されています。基本的に、BLとDALの間にWCFを挿入する必要があります。 。

このスレッドで、L2Sを使用することはWCFよりも良い考えではないことを読みましたが、設計は新しいものではないため、このタイプの方法論を使用し、大量のリファクタリングが可能になったらそれから離れる必要があります。 UIの動作。

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

c# - Pervasive SQL データベースとやり取りする方法

Pervasive SQL データベースを使用して情報を保存するサービス ビジネス管理アプリケーションへの Web インターフェイスを開発中です (ちなみに、私の選択ではありません)。現時点では、クエリ生成クラスのカスタム セットで公式の Pervasive SqlClient 実装を使用しているため、次のようなコードを記述できます。

これまでのところ問題なく動作していますが、あちこちで小さな問題が発生しています。この方向に進むよりも、実績のある DAL を使用したいと思います。しかし、Pervasive データベースと対話できる DAL システムを見つけるのはあまりうまくいきません。

Opf3 には Pervasive ストレージ プロバイダーがありますが、そのフレームワークについて聞いたことがなく、Web サイトには Pervasive v8 のロゴしか表示されませんが、v9.5 および将来的には v10 で動作するものが必要です。

NHibernate プロバイダーを作成しようとしましたが、現在のクエリ生成システムよりも頭痛の種になりました。

何を指示してるんですか?私は非常に急いでいるタイムラインにいるので、できるだけ簡単に統合できるものが欲しい.

0 投票する
7 に答える
11880 参照

.net - データ アクセス層の選択方法を改善する パターン

最近、コードがすべてこの一般的な形式をとるデータアクセス層の選択メソッドを書いていることに気づきました。

またはこのように:

これらのメソッドは、ベースの DataTable または DataRecord を、プレゼンテーション層が使用できる厳密に型指定されたビジネス オブジェクトに変換するビジネス層コードによって呼び出されます。

同様のコードを繰り返し使用しているので、このコードが最善であることを確認したいと思います。では、どうすれば改善できるでしょうか?そして、共通コードをこれから独自のメソッドに移動しようとする価値はありますか。もしそうなら、そのメソッドはどのように見えますか (特に SqlParameter コレクションを渡すことに関して)?

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

.net - シングルトン DAL クラス

DAL (customerDAL) のクラスはシングルトンであるべきではありませんか? 私のコントローラー (customerController) は「Shared Subs」を公開するため、すべての呼び出しで、既に存在する場合は新しい DAL オブジェクトを作成する必要はありません。正しい?

ありがとう

0 投票する
5 に答える
1957 参照

c# - 1 回のデータベース呼び出しによるビジネス オブジェクト階層のロード

単一のデータベース呼び出しからビジネス オブジェクト階層 (親/子/孫) 構造を作成するためのベスト プラクティスを知りたいです。

頭のてっぺんからそれを達成するために、次のようないくつかの方法を考えることができます。

SQLステートメントのすべての関係を左結合し、ループとロジックを使用してビジネスオブジェクトを埋めます

また

複数の select ステートメントと 1 つの datareader を使用し、その NextResult() メソッドを使用して各結果セットを反復処理し、対応する BO を埋めます

これのベストプラクティスは何ですか

DAL に DAAB と c# を使用しています

ありがとう!

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

stored-procedures - 特にストアドプロシージャの場合のデータアクセス層の命名規則

顧客の詳細を取得することになっていて、ある種のダッシュボードビューで使用されるストアドプロシージャを作成するとします。ダッシュボードに関連する他のいくつかのストアドプロシージャもあるので、それに応じてSPに名前を付けて視覚的にグループ化することを考えるかもしれません。

  • DASH_GetCustomerDetails
  • ダッシュ_...

ここで、.NET 2.0を使用して標準のDALを作成する場合は、確実に、厳密に型指定されたデータセットを追加し、いくつかのテーブルアダプターを追加します。デフォルトでは、上記のSPのTAはDASH_GetCustomerDetailsTableAdapterのように名前が付けられ、データテーブルはDASH_GetCustomerDetailsDataTableなどになります。

通常、それらすべての上にある種のビジネスロジックがあります。これは、テーブルアダプタをインスタンス化する保護されたプロパティと、最終的に詳細を取得するためのメソッドGetDetailsを持つCustomerのようなものと呼ばれる場合があります。または、そのメソッド自体をDetailsと呼ぶプロパティにして、プレゼンテーション層がcust.Detailsなどのように言うことができるようにすることもできます。

しかし...私はそのすべての命名に満足していません。ネーミングがそれを反映するように、バックグラウンドで動作するストアドプロシージャを区別できるようにする必要がありますか...何らかのベストプラクティスはありますか?

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

c# - .NET の DAL と BLL

Microsoft による ASP.NET (2.0) アプリ用のDAL/BLL 設計の提案があります。私はいくつかの代替案を知っており、SO で関連する質問を読みました。しかし、この提案された解決策が今日実装する価値があるかどうか疑問に思っています。あなたが知っている特定の欠点はありますか?

さまざまなアプリケーションやスクリプトから顧客や従業員のデータなどにアクセスするために、社内で使用する DAL/BLL コンポーネントを開発したいと考えています。ただし、そのようなものの構築を開始する前に、このソリューションが「優れている」ことを確認したいと思います。例として、BLLは何もカプセル化する代わりにデータテーブルを渡します。ロジックを含む分離されたビジネス オブジェクトはありません。これは基本的に、CRUD 操作を少し緩和し、コントロールのデータ バインディングを可能にする単なるダム レイヤーです。

この分野で経験のある人が、このアプローチの長所と短所を指摘してもらえますか?

0 投票する
7 に答える
632 参照

logging - 特定の循環依存を解決する方法:DALとロギング

一部の「リスクの高い」データ操作をログに記録する必要があります。この場合、「高リスク」操作は、ERPシステムへの書き込みとして定義されます。これらのイベントをSQLServerデータベースに記録していることがあります。

擬似コード:

この密結合を排除するためのベストプラクティスは何ですか?