RealPath:
WebPath:
2016/11/08 17:47 (JST) 更新
データベース関連 >>

モデルのフィールド属性

Contents

掲示板のモデル・DBコンテキスト の項で以下のようなクラスをもとにデータベースのテーブルを構築しました。

public class Comment
{
    public int Id { get; set; }           // プライマリキー
    public string UserName { get; set; }  // 投稿ユーザ名
    public string Body { get; set; }      // 本文
    public DateTime Created { get; set; } // 投稿日時
}

このようなクラスからデータベーステーブルを構築することをコードファーストといいます。

コードファーストでテーブルを構築する場合、シンプルなクラス定義だけではテーブル内フィールドの詳細な属性を指定することができません。
ASP.NET MVC が採用している Entity Framework では、このようなコードファーストに用いるクラス定義において、各クラス内フィールドに属性を付与することにより、データベース側フィールド定義の詳細な指定を行うことができます。

文字列長の指定

クラスフィールドの手前に [StringLength(N)] 属性を記述することにより、フィールドの文字列長を指定できます。

[StringLength(100)]
public string UserName { get; set; }  // 投稿ユーザ名

この例では、UserName フィールドの型が100文字以内の文字列型として定義されます。

検索用インデックスの指定

クラスフィールドの手前に [Index] 属性を記述することにより、検索用インデックスを張ることができます。

[Index]
[StringLength(100)]
public string UserName { get; set; }  // 投稿ユーザ名

その他

随時更新していきます。