0

私たちは、C#で記述され、NHibernateを使用してオブジェクトをデータベースにマッピングしている病院情報システムに取り組んでいます。MVCパターンは、ビジネスロジックをUIから分離するために使用されています。ここに問題があります、

可変サイズの異なる文字列のセットをUIにどのように取得しますか?

たとえば、Contactオブジェクトには、Cityどの都市の連絡先が存在するかを保持するという名前のプロパティがあります。アプリが作成されている国には、80を超える都市があります。これらの都市をコンボボックスにどのように書き込むことができますか?(またはデータグリッド、テーブルなど)この例では、都市番号は固定されています。長い間、別の都市を追加する必要はありません。(都市リストが変更された場合、再コンパイルは問題になりません)

たとえば、ContactオブジェクトにはFooBar10​​00の異なる文字列値を保持するという名前の別のプロパティがあり、これらの値はそのプロパティのコンボボックスから選択されます。また、このセットは、ユーザーが必要に応じて拡張できます。これらの値をコンボボックスにどのようにロードしますか?(文字列リストがコンボボックスオブジェクトに静的に書き込まれる場合、再コンパイルは問題になります)

私は以下のようにさまざまな解決策を持っています

  1. コードまたはデザイナーのコンボボックスに静的に書き込まれるすべての文字列値
  2. リソースファイルから値を取得します
  3. これらの値をXMLファイルに書き込みます(実際には上記と同じですが、再コンパイルする必要はありません)
  4. Cityオブジェクトを作成し、NHibernateを使用してテーブルからリストに値を取得しCITYます
  5. andプロパティStringHolderを持つという名前のクラスを作成します。すべての文字列値(およびを含む)は、。という名前の1つのテーブルにのみ書き込まれます。そして、NHibernateで「CITY」や「FOOBAR」などのキーを使用してこれらの値を取得します。TypeValueCityFooBarSTRINGHOLDER

どちらを選びますか?それとも私に別のものを提案してもらえますか?

皆さんありがとう

4

3 に答える 3

1

私は解決策#4に投票します。それは私がいつも同じような状況でそれをした方法です。よりクリーンなソリューションのようです。

于 2008-10-20T13:01:47.323 に答える
0

場所が実際に何かに使用される場合は、それらをデータベースに取得します。データが「実際には使用されていない」が、ユーザー インターフェイスを改善するために都市検索が提供されている場合、XML ファイル オプションも悪い方法ではありません。

使用されるとは、ニューヨークのすべての従業員のリストなどを意味します。表示するだけの「死んだデータ」の場合は、最小限の作業量と最小限のリスクしか必要としないソリューションを選択してください。これは、ファイル オプションである可能性があります。

于 2008-10-20T13:16:52.783 に答える
0

City のリストに List<string> を使用することについてどう思いますか? この文字列のリストを DAL または BL にロードし、UI に渡します。

FooBar 値にも同じ解決策が適しているはずです。

ID が City または FooBar に関連付けられている場合 (たとえば NY で、DB 内の数値 ID が 1 の場合)、KeyValuePair<TKey, TValue> を使用できます。ジェネリックを使用すると、この KeyValuePair に入れるデータを指定できます。都市名または FooBar の文字列値をキーにして、数値 ID を値にすることができます。

わずか2セント。

于 2008-10-20T17:54:18.997 に答える