実践 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]
後は、同じように「Add-Migration」と「Update-Database」を実行するだけ。
Add-Migration CreatePrefecture
Update-Database
すると、見事に ID 列は作成されずに、Code フィールドがキーとなりました。
まだ問題あり?
これで良いかな・・・と、よく見ると、データ型が nvarchar(max) になってます。キーとなっている Code も、nvarchar(128) と随分冗長な気がします。そもそも nvarchar(max) では、インデックスが利用できないため、そういった仕様を求められている場合は対応できません。
この最大文字数も属性の適用で簡単に指定できます。ついでなのでその他も・・・こちらで。