by manamana
16. 8月 2010 15:32
ASP.NET Dynamic Data を調査していてはまったので、その部分をメモ。
ASP.NET Dynamic Data は DB から自動的に CRUD コードを作成してくれる便利機能です。
デザイナーが自動的にコードを作るのは良いけど、出力されたコードに手を入れるのは(ほぼ)不可能です。
それを回避するために、「メタデータ・クラス」が用意されています。
メタデータ・クラスは、データの構成や挙動を定義するための特殊なクラスで、デザイナーとは独立して編集可能です。
メタデータ・クラスで利用可能な主な属性
分類 | 属性 | 概要 | 基本 | ScaffoldColumn(flag) | 対象のフィールドを自動生成の対象とするか | ScaffoldTable(flag) | 対象のテーブルを自動生成の対象とするか | DefaultValue(value) | 新規データ入力時に適用するデフォルト値 | 表示 | Description(msg) | データ入力時にツールチップとして表示するメッセージ | DisplayColumn(displayCol [,sortCol [,sortDesc]]) | 外部キーで関連付けられた参照先テーブルの表示すべき列を指定(sortDescはsortCol列について降順でソートするか) | DisplayFormat() | データ・フィールドを表示するための書式を指定 プロパティ | 概要 | ApplyFormatInEditMode | 編集モード時に書式文字列を適用するか | ConvertEmptyStringToNull | 空文字列をNothing/nullに自動変換するか | DataFormatString | 書式文字列 | NullDisplayText | 値がNothing/nullのときの表示テキスト | | | UIHint(name) | フィールド値の表示/編集に使用するユーザー・コントロールを指定 | 検証 | Range(min, max) | データ・フィールドが取り得る値の範囲を定義 | RegularExpression(pattern) | 指定された正規表現でフィールド値を検証 | Required() | フィールド値が必須かどうかを指定 | StringLength(max) | フィールドが受け入れ可能な最大文字数 | DataType(type) | データ・フィールドと関連付いた追加的な型情報を指定 | Validation() | 検証にかかわる属性の基本クラス(Validation属性のプロパティは、すべての検証属性で共通して利用可) プロパティ | 概要 | ErrorMessage | 検証エラー時に表示するエラー・メッセージ | ErrorMessageResourceType | エラー・メッセージとして使用するリソースの型 | ErrorMessageResourceName | エラー・メッセージとして使用するリソースの名前 | | | |
Partial 機能を使ってカスタマイズ部分を独立させ、それらを特定の約束事(この場合 MetadataType)で関連付ける事により、
特定のプロパティ(≒フィールド)の出力や値の検査を調節できるわけです。
Visual Studio では、いろいろなコードが自動作成されて便利ですが、カスタマイズ時にはかえって大変でした。
この仕組みも初めは???でしたが、手放せない機能になりそうです。
5ca55952-c2e2-443a-888e-c7c404bbbe7c|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
Development