にSportType & MatchTypeを表示する必要があるクエリ
に参加しますルックアップテーブルと列挙型または類似のコード内定数の間これらの要素のうちの主なものは、アプリケーションを再デプロイせずにこれらの値を追加または変更する必要性がどの程度あるかという問題です。
コード内の値を使用すると、サロゲートキーを使用している可能性は低いので、コード内で何かのスペルを変更することに決めた場合は、データベース内の不一致データの問題を作成します。
また、これらのタイプをドロップダウンリストに表示する必要があるので、UI親和性の高いバージョン(たとえば単語間のスペースを含む)を表示するためにハッキーになってしまいますので、裸の列挙体の使用をお勧めします。
最も簡単な選択肢は、文字列定数を持つクラスです:
public class SportType
{
public const string TeamSport = "Team Sport";
public const string IndividualSport = "IndividualSport";
}
より洗練されたオプションが、このユースケースのために、おそらく不要、これらのオブジェクトは、強く型付けされたようにすることです:
public class SportType
{
private readonly string _description;
private SportType(string description)
{
_description = description;
}
public static readonly SportType TeamSport = new SportType("Team Sport");
public static readonly SportType IndividualSport = new SportType("Individual Sport");
public static implicit operator SportType(string s)
{
return new SportType(s);
}
public static implicit operator string(SportType s)
{
return s._description;
}
// equality overrides etc.
}
ここでの利点は、これらの値を文字列として使用できることです。
string sportType = SportType.TeamSport;
変数とパラメータをそのまま文字列として宣言する必要はありません。
public void SetFavoriteSportType(SportType sportType)
これもまたオプションです。最終的には、アプリケーションをどのようにデプロイするか、これらのデータをどのように変更するかが決まります。
出典
2012-03-03 06:19:25
Jay
あなたの質問は – BrokenGlass
です。私はスポーツサイトを持っています。スポーツを追加したいと思います。私はスポーツタイプのドロップダウンリストをEnums {cricket = 1、Boxing = 2}にバインドする必要がありますか、またはSportTypeテーブルを作成する必要があります(その場合、私は作成しません)列挙型)。 – Ali