問題タブ [data-access]

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

c# - System.Objectに適用する拡張メソッドを作成することをお勧めしますか?

オブジェクトレベルで適用する拡張メソッドを作成する必要があるのか​​、それともクラス階層の下位に配置する必要があるのか​​疑問に思っています。私が言いたいのは、次のようなものです。

基になるデータベースは残念ながらnullの可能性がある列を非常に自由に使用できるため、nullになる可能性のあるデータベースデータ(OleDbDataReaderから)を大量に処理する必要があるため、これらのメソッドを作成しました。そして、私の生活を少し楽にするために、私はそれらの拡張メソッドを思いつきました。

私が知りたいのは、これが良いスタイルなのか、許容できるスタイルなのか、悪いスタイルなのかということです。Objectクラスを「汚染」するので、少し心配です。

よろしくお願いします:)

キリスト教徒

PS私はそれを意図的に「主観的」としてタグ付けしませんでした。

0 投票する
6 に答える
183 参照

.net - 接続をプールすることは、私にとってどれほど重要ですか?

コードを再配置して、ADO 接続を「プール」するよう提案されました。各 Web ページで、1 つの接続を開き、開いている同じ接続を使用し続けます。しかし、10 年前は重要だったが、今はそれほど重要ではないという人もいました。たとえば、Web 投稿で 5 db の呼び出しを行った場合、開いたり閉じたりする 5 つの個別の接続を使用することは問題になりますか?

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

.net - AS400(ISeries)への接続時にエラーが発生しました

.netクラスを使用してAS400サーバーに接続しようとしています。
IBM.Data.DB.iSeriesへの参照を追加し、次のコードを使用します
。var conn = new iDB2Connection( "DataSource = 111.111.111.111; UserID = xxx; Password = xxx; DataCompression = True;");
conn.Open();

しかし、64ビットを実行すると次の例外が発生し
ます:「プロバイダーは64ビットモードで実行できません。」
32ビットの実行:予期しない例外が発生しました。タイプ:System.DllNotFoundException、メッセージ:DLLをロードできません'cwbdc.dll':オペレーティングシステムを実行できません。(HRESULTからの例外:0x800700B6)。

クライアントアクセスをアンインストールして、再度インストールしました。cwbdc.dllは、system32とsyswow64に存在します。odbcを使用すれば、AS400への接続に問題はありません。

私はWindows7の64ビットバージョンを実行しています。
何かアイデアはありますか?

/ジミー

0 投票する
6 に答える
111650 参照

ruby-on-rails - Railsでの1回の呼び出しで複数のオブジェクトを保存する

私はこのようなことをしているレールにメソッドを持っています:

問題は、エンティティを追加するほど時間がかかることです。これは、レコードごとにデータベースにアクセスする必要があるためだと思います。それらはネストされているため、親が保存される前に子を保存できないことはわかっていますが、すべての親を一度に保存してから、すべての子を保存したいと考えています。次のようなことをするといいでしょう:

たった 2 回のデータベース ヒットですべてが完了します。レールでこれを行う簡単な方法はありますか?

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

.net - .NETデータアクセス層/中間層を推奨

私は現在、すべて同じデータを使用するSilverlight、wpf、および可能なWindowsPhoneを含むように拡張される可能性のあるMVCアプリケーションを作成しています。

そこで、すべてのオブジェクトを保持するためのクラスライブラリを作成し、MVCアプリを作成しました。

私の質問は、データにアクセスするための最良の方法は何でしょうか?将来の拡張の可能性を考慮に入れます。

Webサービス/WCFを使用する必要がありますか?RIAサービス?リモーティング?または、他の何か。

過去に何を使ったことがありますか?また、何をお勧めしますか?

ありがとう

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

class - コレクションを介したデータベースアクセス

データベースの結果を取得してUIにデータを入力する必要がある3層のアプリケーションがあります。メッセージを処理するMessagesCollectionクラスがあります。データベースからユーザーをロードします。ユーザーのインスタンス化(つまり、new User())で、MessageCollection Messages = new MessageCollection(this)が実行されます。メッセージコレクションは、ユーザーをパラメーターとして受け入れます。

ボブへのメッセージを受け取りたいです。

GetUnreadMessagesは、データアクセス層を呼び出すビジネスデータプロバイダーを呼び出します。ビジネスデータプロバイダーはリストを返します。

私の質問は-ここでのベストプラクティスがわからない-MessagesCollectionクラス内の配列にメッセージのコレクションがある場合、ICollectionを実装してGetEnumerator()とメッセージをトラバースする機能を提供できます。しかし、メッセージが変更され、ユーザーが古いメッセージをロードした場合はどうなりますか?

ビッグメッセージコレクションはどうですか?ユーザーに10,000件の未読メッセージがある場合はどうなりますか?データベースにアクセスして10,000個のメッセージオブジェクトを返すのは効率的ではないと思います。

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

c# - WinForms アプリケーションに最適なデータ アクセス モデル

C# Winforms アプリケーションで最高のパフォーマンスと速度を実現するデータ アクセス モデルはどれですか?

  • データセット?
  • NHibernate?
  • エンティティ フレームワーク?

Datasets を使用しないと人々が言うのはなぜですか?

0 投票する
6 に答える
8416 参照

asp.net - ASP.net DAL DatasSet とテーブル アダプターが名前空間にない - Northwind チュートリアル

http://www.asp.net/learn/data-access/tutorial-01-cs.aspxにある「データ アクセス レイヤーの作成」チュートリアルを実行しようとしました。

DB 接続を作成し、型指定されたデータセットとテーブル アダプターを作成し、SQL を指定します。

コードをプレゼンテーション層 (この場合は AllProducts.aspx というページ) に追加すると、NorthwindTableAdapters.ProductsTableAdapter クラスが見つかりません。NorthwindTableAdapters 名前空間をインポートしようとしましたが、表示されません。ソリューション エクスプローラーのクラス ビューを見ると、Northwind クラスがあることが確認されますが、探している名前空間はありません。

基本的に同じ手順のオンライン チュートリアルをいくつか試しましたが、同じ結果が得られました。

誰かが私に正しい方向へのプッシュを与えることができますか?

エラーが発生しました: インポート 'NorthwindTableAdapters' で指定された名前空間または型にパブリック メンバーが含まれていないか、見つかりません。名前空間または型が定義されていて、少なくとも 1 つのパブリック メンバーが含まれていることを確認してください。

参照を追加する必要があるか、別のクラスを作成してメインプロジェクトにインポートする必要があると思います。その場合、チュートリアルではこれについて言及されていません。

SuppliersTest2.aspx.vb:

クラス終了

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

c# - アクセス修飾子-ビジネスオブジェクトのプロパティ-取得と設定

DataAccessレイヤーにLINQtoSQLを使用しています。データアクセス層にあるものと同様のビジネスオブジェクトがあります。

データプロバイダーにメッセージ#23が表示されます。メッセージのインスタンス化時に、メッセージコンストラクターで、MessageTypeを取得し、MessageTypeクラスの新しいインスタンスを作成し、データベースからMessageType情報を入力します。

したがって; これでメッセージのMessageTypeの名前を取得したいと思います。

また、管理者にMessageTypeを設定してもらいたい

しかし、私はユーザーがMessageType.Nameを公に設定することを望んでいません。しかし、新しいMessageTypeインスタンスを作成すると、外部クラス(データアクセス層)から設定するため、Nameプロパティのアクセス修飾子はパブリックになります。

これをプロパティからinternalに変更して、クラスがパブリック変数のようにアクセスできるようにし、他のアプリケーションがアクセスして変更できないようにすることができます。

公共の財産のように見えるので、これはまだ正しく感じられません。この状況でのパブリックアクセス修飾子は悪いですか?ヒントや提案をいただければ幸いです。

ありがとう。

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

c# - ビジネス オブジェクト間の過度にアクセスしやすく、非常にリソースを消費する関係。どうすればこれを修正できますか?

まず、これは長い質問のように思えるかもしれません。そうではないと思います...コードは、私が現在行っていることの概要にすぎません。それは正しくないので、建設的な批判と落とし穴に対する警告、および私にできることの提案を探しています。

ビジネス オブジェクトを含むデータベースがあります。
親オブジェクトのプロパティにアクセスする必要があります。
ビジネス オブジェクトを通じて何らかの状態を維持する必要があります。

クラスを見ると、アクセス修飾子が正しいとは思えません。あまりうまく構成されていないと思います。リレーションシップのほとんどは、パブリック プロパティでモデル化されています。SubAccount.Account.User.ID <-- それらはすべて公開されています..

これよりもクラス間の関係をモデル化するためのより良い方法があるので、それほど「公開」されませんか?

この質問の他の部分は、リソースに関するものです。

リストを返す User.GetUserList() 関数を作成し、9000 人のユーザーがいる場合、GetUsers メソッドを呼び出すと、9000 個の User オブジェクトが作成され、その中に 9000 個の新しい AccountCollection オブジェクトが作成されます。このプロジェクトがそれほどリソースを消費しないようにするにはどうすればよいですか?

以下のコードを見つけて、細断してください。