Dalam tutorial EF 4.1 Code First, kode berikut diberikan:
public class Department
{
public int DepartmentId { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<Collaborator> Collaborators { get; set; }
}
Kemudian dijelaskan bahwa antarmuka yang lancar lebih fleksibel:
Anotasi data jelas mudah digunakan tetapi lebih baik menggunakan pendekatan terprogram yang memberikan lebih banyak fleksibilitas.
Contoh menggunakan antarmuka fasih kemudian diberikan:
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);
}
Saya tidak mengerti mengapa antarmuka yang lancar seharusnya lebih baik. Benarkah itu? Dari sudut pandang saya, sepertinya penjelasan data lebih jelas, dan lebih terasa semantik.
Pertanyaan saya adalah mengapa antarmuka yang lancar menjadi pilihan yang lebih baik daripada menggunakan atribut, terutama dalam hal ini?
(Catatan: Saya cukup baru dalam keseluruhan konsep antarmuka yang lancar, jadi harap tidak ada pengetahuan sebelumnya tentang ini.)
Referensi: http://codefirst.codeplex.com/