System.ComponentModel.DataAnnotations とは?
System.ComponentModel.DataAnnotations
は、.NET Frameworkの一部であり、主にデータの検証やメタデータを扱う際に使用される名前空間です。この名前空間に含まれる属性を使用することで、データモデルのプロパティに対して検証ルールを簡単に適用でき、さらにはモデルの定義自体をより明確に表現することが可能になります。
主な利点
- 入力検証の簡素化: データモデルに直接属性を適用することで、入力データの検証を容易に行えます。
- コードの明確化: データモデルの各プロパティに対する制約やルールが一目で分かります。
- 再利用性の向上: 検証ロジックをモデルに組み込むことで、アプリケーション全体での再利用が容易になります。
基本的な使用方法
属性の適用
最も一般的な使用方法は、モデルのプロパティに様々な検証属性を適用することです。例えば、あるプロパティが必須であること、または特定の文字列の長さを満たしていることを指定することができます。
using System.ComponentModel.DataAnnotations;
public class Product
{
[Required]
public string Name { get; set; }
[StringLength(50)]
public string Description { get; set; }
}
属性の種類
-
Required
: フィールドが必須であることを指定します。 -
StringLength
: 文字列の最大長を制限します。 -
Range
: 数値の最小値と最大値を指定します。 - その他にも多くの属性が用意されています。
データの検証
モデルにデータがバインドされる際(例えば、フォームからの入力を受け取る際)、自動的にこれらの検証ルールが適用されます。検証に失敗した場合は、エラーメッセージが生成され、適切に処理することができます。
Product product = new Product
{
Name = "新しい製品",
Description = "非常に長い説明文..."
};
var context = new ValidationContext(product, null, null);
var results = new List<ValidationResult>();
if (!Validator.TryValidateObject(product, context, results, true))
{
foreach (var error in results)
{
Console.WriteLine(error.ErrorMessage);
}
}