In una prima esercitazione sul codice EF 4.1 viene fornito il seguente codice:
public class Department
{
public int DepartmentId { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<Collaborator> Collaborators { get; set; }
}
Quindi viene spiegato che l'interfaccia fluida è più flessibile:
Le annotazioni sui dati sono sicuramente facili da usare, ma è preferibile utilizzare un approccio programmatico che offre molta più flessibilità.
Viene quindi fornito l'esempio dell'uso dell'interfaccia 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);
}
Non riesco a capire perché l'interfaccia fluida sia presumibilmente migliore. É davvero? Dal mio punto di vista, sembra che le annotazioni dei dati siano più chiare e abbiano una sensazione semantica più chiara.
La mia domanda è: perché un'interfaccia fluida sarebbe un'opzione migliore rispetto all'utilizzo degli attributi, specialmente in questo caso?
(Nota: sono piuttosto nuovo all'intero concetto di interfacce fluide, quindi per favore non aspettatevi conoscenze precedenti su questo.)
Riferimento: http://codefirst.codeplex.com/