EF 4.1 Code Firstチュートリアルでは、次のコードが提供されています。
public class Department
{
public int DepartmentId { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<Collaborator> Collaborators { get; set; }
}
次に、流れるようなインターフェイスがより柔軟であることが説明されています。
データアノテーションは間違いなく簡単に使用できますが、はるかに柔軟性の高いプログラムによるアプローチを使用することをお勧めします。
流れるようなインターフェースの使用例を次に示します。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Department>().Property(dp => dp.Name).IsRequired();
modelBuilder.Entity<Manager>().HasKey(ma => ma.ManagerCode);
modelBuilder.Entity<Manager>().Property(ma => ma.Name)
.IsConcurrencyToken(true)
.IsVariableLength()
.HasMaxLength(20);
}
流なインターフェースがおそらく優れている理由がわかりません。本当か?私の観点からは、データ注釈はより明確で、より明確なセマンティックな感覚を持っているように見えます。
私の質問は、特にこの場合、属性を使用するよりも流なインターフェイスが優れた選択肢になるのはなぜですか?
(注:流なインターフェイスの概念全体はまったく新しいので、これに関する予備知識がないことを期待してください。)