0

ビジネス オブジェクトの設計について考えるのに助けが必要です。当社のデータベースには、当社の従業員の出入りの毎日の出入り時間が記録されています。各レコードには、従業員の UserID、従業員がサインインしたワークステーションの ID、および明らかに日付も格納されます。

ユーザーは、任意の日付に、任意の数のワークステーションで多数の入退場時間を設定できます。レコードは次のようになります。

SignInID | UserID | WorkStationID | DateTimeEntry | DateTimeExit

このエントリのレポートを表示し、日付、ワークステーション、またはユーザーごとにグループ化されたデータを終了する必要がある、asp.net フォームにreportviewerがあります。

たとえば、特定の日付のすべてのデータを表示する必要があります (その日付内で、ワークステーション別に並べ替えます)。

ここに画像の説明を入力

または、特定のワークステーションのすべてのデータ (およびその中で日付順) およびその他の同様の形式を表示する必要があります。

ここに画像の説明を入力

今までは、データを選択し、フォームに表示するための何らかの間に合わせのデータテーブルを構築する方法の怪物がありました。オブジェクトを使用して再設計したいのですが、階層を設計する方法、つまり、どのオブジェクトにエントリ時間と終了時間のコレクションが含まれているか、クエリを実行できるように柔軟にする方法がわかりません (Linq を使用して、おそらく? )さまざまな表示基準に基づいていますか?

オブジェクトの設計と、私がやろうとしていることに対して正しい用語を使用することについてもっと学ぶことに本当に興味があるので、これらの概念を説明する記事をいくつか教えていただければ、それも非常に役に立ちます.

編集:わかりました、少なくとも私は何か新しいことを学びました. 私がやろうとしているのは ORM (オブジェクト リレーショナル マッピング) であり、.NET には Entity Framework と呼ばれる組み込みの ORM ツールがあります。ここまでは順調ですね。次に、データを整理する方法を理解するのに役立つかどうかを確認する必要があります.

4

1 に答える 1

0

実際、私の質問に答えてくれなかったコミュニティに感謝しなければなりません。なぜなら、Entity Framework、Linq (および .NET 3.5 の Entity Framework の制限) について多くのことを学ばなければならなかったからです。質問。

最終的に、Entity Framework を使用してデータベースのエンティティ モデルを作成し、データを整理するために必要なビジネス オブジェクトを作成しました。私のデータは階層で設計されているのではなく、毎回のエントリ レコードに含まれる Workstation や User などの関連付けがあることを知りました。Linq-to-Entities クエリを使用して必要なデータを選択し、その関連付け (Time.Workstation.Name または Time.User.FullName など) を使用してフラット化して、最終的に投影されたオブジェクトにすべてのデータが含まれるようにしました。私のレポートの各行で欲しかった。私の投影されたオブジェクトは、実際には、クエリされたデータを保持し、rdlc レポートのデータソースとして使用できるようにするために作成した POCO でした。

最後に、自分の好みに合わせて定義できた rdlc ファイルに接続する Reportviewer の ObjectDataSource にクエリの結果をバインドしました。つまり、ワークステーションを最初に表示するか、ユーザーを表示するか、表示したい関連情報を表示します。

于 2013-06-23T06:40:04.940 に答える