インクリメンタルなカイハツにっき

.NET 開発手法を中心に、これから始める方の一助となる記事を載せていく予定です。

実践 Entity Framework ~ Key の指定

Entity Framework で Code First Migrations。
以前、Id 列の作成方法を紹介しました。Id 列は作成したくないということで、前回、マイグレーションを利用した戻す方法を紹介しました。無事に元に戻ったところで、今回は、Code 列をキーとしてみましょう。

Key 属性を適用

指定方法はいたって簡単。
System.ComponentModel.DataAnnotations.KeyAttribute 属性を対象となるプロパティに適用するだけです。

属性についてはこちら。
属性 (C# および Visual Basic)

System.ComponentModel.DataAnnotations の using 指定と、Key 属性を Code プロパティに適用させます。

using System.ComponentModel.DataAnnotations;
[Key]

KeyAttribute

後は、同じように「Add-Migration」と「Update-Database」を実行するだけ。

Add-Migration CreatePrefecture

Add-Migration

Update-Database

Update-Database

すると、見事に ID 列は作成されずに、Code フィールドがキーとなりました。

Code が Key

まだ問題あり?

これで良いかな・・・と、よく見ると、データ型が nvarchar(max) になってます。キーとなっている Code も、nvarchar(128) と随分冗長な気がします。そもそも nvarchar(max) では、インデックスが利用できないため、そういった仕様を求められている場合は対応できません。

この最大文字数も属性の適用で簡単に指定できます。ついでなのでその他も・・・こちらで。