SL5 では、エンティティ モデルから生成された DomainService.metadata からのデータを表示する DataForm があります。
DomainService.metadata のデータ プロパティを装飾するために、Required、StringLength などの DataAnnotation.ValidationAttribues を使用しています。
これらの検証属性はうまく機能します。コンパイルして実行すると、検証が DataForm に表示されます。
しかし、EnumDataType 属性を DataForm で動作させることはできません。あたかもそこになかったかのようです。
public partial class Student {
internal sealed class StudentMetadata {
public enum MyEnum {
One = 1,
Two = 2
}
private StudentMetadata() {
}
[EnumDataType(typeof(MyEnum), ErrorMessage = "Type 1 or 2")]
public Nullable<int> Other { get; set; }
[Required]
public int Age { get; set; }
たとえば、DataForm ではフィールドAgeを空のままにすることはできませんが、TypeOfRoomフィールドに 4 を入力すると、エラー メッセージは表示されません。
ComboBox などを使用できることはわかっていますが、EnumDataType 検証属性の使用法を学ぼうとしています。