0

これは多少改善されるかもしれませんがIEnumerable、DataTable への変換でリソースを浪費しているかどうかを判断しようとしています。データはIEnumerable<T>ありますが、ビジネス ロジックを適用する必要があります。IEnumerable<T>比較対象の別のデータや、その他のそのようなビジネス オペレーションがあります。DataTable と同じように、厳密に型指定された列挙可能なオブジェクトに対して何でもできるはずだと私には思えますが、私は DataTable に慣れているので、自信がありません。

最終的にデータは になりList<T>、Web サービスによってシリアル化されるので、データセットを行ったり来たりするのはもったいないような気がします。

IEnumerableと同じオブジェクトに対して何でもできると考えるのは正しいDataTableですか? IEnumerables を使用する場合、単純に「作業」を行うヘルパー メソッドを用意する必要がありますか?


私の緑色の初心者が表示されます。データとその使用方法についてもう少し詳しく説明します。データは、サブスクライバーに送信される個人情報になります。彼らは変更を加えてから、更新を送り返すことがあります。

データはロールアップされて送信されますが、正規化された(第3レベルだと思います)状態で保存されます。SPやUDFなどを使用してデータをロールアップします。プロセスには、ユーザーが自分自身について送信した履歴レコードを評価して、推奨されるアクションを決定するための多数の結合とカーソルがあります。ユーザーは推奨されるアクションを実行するかどうかに関係なく、実行したアクションはすべて返送され、次回のために正常化された状態に分解されます。

私が実行している議論 (テスト環境なので害はありません) は、db 操作を ORM に置き換え、中間層のワークフローを介してビジネス ロジックを実行することです。これにより、ビジネスの変化によりダイナミックかつ流動的に対応できるようになります。私の ORM は私のデータを取得しますが、それは IEnumerable 形式であるため、ワークフローを実行するのに最適なデータ構造を探しています。結局、私は何にもバインドしていませんが、シリアル化されて Web サービス経由でクライアントに送信されるカスタム オブジェクトを作成しています。

私がより多くの情報を提供できる場合は、躊躇しないでください。私は鈍感になろうとしているわけではありません。ありがとうございました

4

2 に答える 2

2

IEnumerableほとんどが読み取り専用 API です。すべてのメンバーにアクセスでき、さらに作業を進めることができますが、新しいメンバーを追加したり削除したりすることはできません。ReadOnly「セカンド」ネームです。

DataTable一方、ADO.NET との関連性が高いため、DTO やビジネス オブジェクトには適していません。追加、削除、および削除をサポートしていますが、データ層でのみ使用する必要があります。

ビジネス層で Facade パターンを使用し、内部で Dao またはリポジトリを操作しながら検証呼び出しをラップすることをお勧めします

于 2012-12-15T17:44:15.980 に答える
0

拡張メソッドを使用して、 this で要求/変換を実行できますIEnumerable<T>。おそらく、DataTables はまったく必要ありません。使用可能な LINQ 拡張メソッドは、記述できる他のカスタム拡張メソッドに連鎖/結合できます。

Updates に関する限り、個々のアイテムにインデックスで簡単にアクセスしたい場合は、この IEnumerable をインデックス可能なコレクションに入れることができます。ただし、それは実行する操作によって異なります。

于 2012-12-15T17:38:27.460 に答える