2017-08-30 14 views
0

データベースの使用時にクラスを使用する適切な方法について、さらに詳しく知りたいと思います。クラスとデータベースのベストプラクティス

私は "フィーチャー"というテーブルを持っていて、その中のほとんどのカラムにID(外部キー)を保持しています。このテーブルをアプリケーションにロードするには、すべての列を保持する「DBFeatures」クラスを作成します。次に、 "DBFeatures"クラスのすべてのプロパティの実際の値を持つ通常の "Features"クラスを作成する必要があります。 "Features"クラスには、データベースへの接続をオープンして、指定されたIDですべての適切な値を取得するメソッドがあります。次に、 "Features"クラスをそのまま使用することができます。

同じことが逆になります。「フィーチャ」のオブジェクトを作成し、INSERTING時にデータベースに渡される「DBFeatures」クラスに変換します。

これは正しいですか?他にどんな選択肢があれば良いでしょうか?他の唯一のオプションは、1つのクラス "DBFeature"クラスを持ち、そのクラスのオブジェクトを作成するときにプロパティが設定または取得されるたびに、IDを指定して値を取得するためにデータベースにアクセスする必要があります。

編集

私はフォームのデータを使用します。ほとんどのテーブルは、コンボボックスのデータソースなどのコントロールで使用できるオブジェクトのリストに格納される、読み込み専用です。また、私はデータベースのテーブルに出力されるクラスにユーザー入力を読み込むことができるようにしたい。

答えて

1

何かを行う方法に関する多くの計画は、提供していない実装によって異なります。あなたの物で何をするつもりですか?レポートのためですか?あなたは値を操作する必要がありますか?

私はあなたがデータベースをオープンし、それを表すクラスにロードするクラスを持っている必要がある場合、データを操作しようとしていると仮定します。

クラスは、列に対応するプロパティを持つことができますし、行を表すクラスの一覧を持つことができます。

これはこれを行う方法の一例に過ぎませんが、あなたの意図が分からず、詳細を知ることができないと言うことは不可能です。

+0

私はフォームのデータを使用します。ほとんどのテーブルは、コンボボックスのデータソースなどのコントロールで使用できるオブジェクトのリストに格納される、読み込み専用です。また、私はデータベースのテーブルに出力されるクラスにユーザー入力を読み込むことができるようにしたい。 – jediderek

+0

また、はい、私は各行のためにそのクラスのオブジェクトのリストを持っていることを理解しています – jediderek

+0

あなたはそれを使用していない理由dapperを使用している場合、それは良いですか?あなたがベストと思っていることをして、同じ質問をCode Reviewに投稿すれば、あなたの質問からさらに多くのマイレージが得られると思います。このような質問に完全な絵なしで助言を与えることは本当に難しいです。 –

1

Entity FrameworkのようなORMが必要なようです。

+0

私は自分のORMとしてdapperを使っていますが、それは私が思ったクラスへのテーブルとクラスへのテーブルの格納にのみ使用されます。 – jediderek

+0

私はdapperに慣れていませんが、他のORMとほとんど同じことができると思います。私はあなたが "フィーチャー"と "DBFeatures"クラスを必要としないと思います。 1つだけ必要です。 – Valerii

関連する問題