Dans un didacticiel EF 4.1 Code First, le code suivant est fourni:
public class Department
{
public int DepartmentId { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<Collaborator> Collaborators { get; set; }
}
Ensuite, il est expliqué que l'interface fluide est plus flexible:
Les annotations de données sont certainement faciles à utiliser, mais il est préférable d'utiliser une approche programmatique qui offre beaucoup plus de flexibilité.
L'exemple d'utilisation de l'interface fluide est alors donné:
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);
}
Je ne comprends pas pourquoi l'interface fluide est censée être meilleure. Est ce que c'est vraiment? De mon point de vue, il semble que les annotations de données soient plus claires et plus sémantiques.
Ma question est pourquoi une interface fluide serait-elle une meilleure option que l'utilisation d'attributs, en particulier dans ce cas?
(Remarque: je suis assez nouveau dans le concept d'interfaces fluides, alors ne vous attendez à aucune connaissance préalable à ce sujet.)
Référence: http://codefirst.codeplex.com/