En un tutorial de EF 4.1 Code First se proporciona el siguiente código:
public class Department
{
public int DepartmentId { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<Collaborator> Collaborators { get; set; }
}
Luego se explica que la interfaz fluida es más flexible:
Las anotaciones de datos son definitivamente fáciles de usar, pero es preferible utilizar un enfoque programático que brinde mucha más flexibilidad.
Luego se da el ejemplo de uso de la interfaz fluida:
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);
}
No puedo entender por qué la interfaz fluida es supuestamente mejor. ¿Es realmente? Desde mi perspectiva, parece que las anotaciones de datos son más claras y tienen una sensación semántica más clara.
Mi pregunta es ¿por qué una interfaz fluida sería una mejor opción que usar atributos, especialmente en este caso?
(Nota: soy bastante nuevo en todo el concepto de interfaces fluidas, así que no espere ningún conocimiento previo sobre esto).
Referencia: http://codefirst.codeplex.com/