問題タブ [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.
file - ファイル管理: ビジネス層のデータ アクセス層によって処理される?
だから、私は、StructureMap を使用して、Repository モデルに続くこの Web ベースのアプリに取り組んでいます。
アプリケーションの 1 つの側面により、ユーザーはファイルをアップロードおよび管理できます。
これらのユーザー ファイルの保存/削除の管理は、どこのどの層が担当する必要がありますか?
ビジネスレイヤー、またはデータアクセスレイヤー...?
それは、何らかの理由で、簡単な答えではないようです...
歴史的には、GUI で平手打ちしただけでしたが、よりプログラム的に正しくなるように努力し、これらのサービスを処理する方法を再考しました。たぶん私は自分の質問に答えただけです...
c# - 実行する ORM: telerik Open Access VS Subsonic VS linq to sql VS Active Record
ORMの使用を検討しており、意見/比較が必要でした
ORM の基本的な基準は次のとおりです: 使いやすい/構成しやすい (学習曲線が短い)、柔軟性がある、それを抽象化できる、維持しやすい
これは、私たちが見ているORMと、最初の印象のリストです。
- オープン アクセス - 単純なものは非常に簡単に思えますが、柔軟性があまりないようです。コストは問題ではなく、既に所有しています。
- Ling to SQL - 使用と設定は非常に簡単に見えますが、いくつかの機能がありません
- Active Record - NHibernate をシンプルに
- SubSonic - 非常に機能が豊富に見えますが、実際にはあまり遊んでいません
ここに、私たちが調べて除外したORMがあります
- エンティティはまだベータ版です
- NHibernate には学習曲線がかなりあります (学習するのに 3 週間もかかりません)。
database - データベースを交換しますか?
多くの ORM ツールとカスタム データ アクセス レイヤー (DAO パターンなど) の目標は、最小限の作業でデータベース システム全体を交換できると思われるポイントまでデータベースを抽象化することです。
一般的な DAL パターンに従うことは通常、コードでは良い考えですが、データベースを交換することは決して最小限の作業ではないようです。(コスト、トレーニング、データ移行など)
大規模なシステムで 1 つのデータベースを別のデータベースに交換し、その影響をコードで処理した経験がある人はいますか? コードから実際のデータベースを抽象化することについて心配する価値はありますか?
c# - C# プロジェクトのどこに SQL ステートメントを配置しますか?
vb6 アプリケーションの c# への移植を担当する予定です。このアプリケーションは、アクセス データベースとやり取りする Windows アプリです。データ アクセスは、基本的なビジネス オブジェクトにカプセル化されています。基本的に1テーブル1クラス。既存の vb6 ビジネス オブジェクトは、DAO を介して DB の読み取りと書き込みを行います。以前に DAL と ORM を数回書いたことがありますが、それらはすべて SQL Server のみを対象としていました。これは、アクセスと SQL サーバーをターゲットにする必要があります。以前のプロジェクトでは、SQL 文字列をビジネス オブジェクトのプライベート パーツに配置し、接続やコマンドの作成などの冗長な SQL コードを共通の基本クラスに移動して、コードを削減していました。
今回は、SQL 文字列を .settings ファイルまたはその他のキー/値型のテキスト ファイルに書き込むことを考えています。次に、SQL ユーティリティを作成してこのファイルを編集し、パラメータ化されたクエリを実行してテストできるようにします。これらのクエリは、SQL をコードに埋め込むのではなく、ビジネス オブジェクトで名前で参照されます。
標準的なアプローチは、対象となるデータベースごとに DAL を作成し、どの DAL を使用するかを構成状態にすることです。データベースごとに 2 つの DAL クラスを作成したくありません。キー名で正しいクエリを参照し、適切なタイプの接続があれば、コードが少なくなるようです。
それで、あなたたちはこのようなことをしていますか?この問題にどのように取り組みましたか、または取り組みましたか? あなたに最適なものは何ですか?
ありがとう!
c# - WCF OperationContract と Nibernate ICriteria
WCF と ICriteria を使用してクールな API を作成しようとしています。たとえば、次のようになります。
誰でも送信できるように DetachedCriteria を使用することを考えています。これを Service の Session に接続して、DB の前でクエリを実行します。
そのような API を作成する人はいますか? Nhibernate の ICriteria を使用する必要がありますか? 他にクールなアイデアはありますか?
ありがとう。
orm - DAL と ORM の境界線はどこですか?
用語はしばしば同じ意味で使われ、明らかにかなりの重複がありますが、システムが ORM であり、それが DAL であることによって暗示されているわけではないと言うことによって、何かが強く暗示されていることが暗示されているように思われることもよくあります。それは何ですか?これらのタイプのシステムを区別する重要なポイントは何ですか?
たとえば、Database、Table、Column、および Row クラスを実装し、既存のデータベースの自動分析によってそれらにデータを入力し、単純化された対話などを可能にするコードがあるとします。外部キーなどのデータベース エンティティ間の構造的な関係を理解し、適用し、活用します。すべてのエンティティ モデルをサブクラス化して、テーブル固有の機能をそれらにロードできます。
これはどの程度 DAL ですか? それはどの程度ORMですか?なんで?
c# - インデクサーの拡張メソッド、それらは良いでしょうか?
インデクサーの拡張メソッド、それらは良いでしょうか?
私はPOCOを再水和するいくつかのコードで遊んでいました。
このコードは、SqlDataReaderから返された行を繰り返し処理し、リフレクションを使用して列の値からプロパティを割り当てます。コールスタックの下に、次のようなコードがありました:-
Setメソッドは拡張メソッドとして作成されました。
このようなコードを書くことができたら素晴らしいと思います
つまり、インデクサーの拡張メソッドを書きたかったのです。
.Netにインデクサーの拡張メソッドがない理由はありますか?他の人は拡張メソッドインデクサーの他の良い使い方を持っていますか?
余談ですが...インデクサーの拡張メソッドを記述できれば、次のようなコードを記述できます…</ p>
私のコードからのいくつかのスニペット
c# - DAL でシングルトン パターンを使用することの長所と短所
DALを実装したシングルトンパターンを使用するように依頼しましたが、接続をプールしたり、トランザクションを使用したりするのは難しいと思います..
長所と短所を知りたいです。また、開発中のサイトには 500 人以上の同時ユーザーがいる可能性があるため、接続をプールする最善の方法も知りたいです。
DB サーバーは Oracle 10g です。
DAL はエンタープライズ ライブラリ 3.1 を使用します
c# - データアクセス層(DAL)の設計
データアクセス層の設計に.Netエンタープライズライブラリデータアクセスアプリケーションブロックを使用しています。
私のCategoryDALクラスには、次のようなメソッドがあります。
GetProductsInCategory(int CatId)、GetAllProducts、GetCategoriesなど。
私の質問は、このコード行をどこに置くかです。
上記のすべてのメソッドに配置するか、データベースオブジェクトをDALクラスに返す基本クラスを用意しますか。
また、これらのDALクラスメソッドを静的に保持する必要がありますか?