In einem EF 4.1 Code First Tutorial wird der folgende Code angegeben:
public class Department
{
public int DepartmentId { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<Collaborator> Collaborators { get; set; }
}
Dann wird erklärt, dass das flüssige Interface flexibler ist:
Datenanmerkungen sind auf jeden Fall einfach zu verwenden, es ist jedoch vorzuziehen, einen programmgesteuerten Ansatz zu verwenden, der viel mehr Flexibilität bietet.
Das Beispiel für die Verwendung der flüssigen Schnittstelle wird dann gegeben:
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);
}
Ich kann nicht verstehen, warum das fließende Interface angeblich besser ist. Ist das wirklich? Aus meiner Sicht sieht es so aus, als wären die Datenanmerkungen klarer und hätten ein klareres semantisches Gefühl.
Meine Frage ist, warum eine flüssige Benutzeroberfläche eine bessere Option ist als die Verwendung von Attributen, insbesondere in diesem Fall.
(Hinweis: Ich bin ziemlich neu im Bereich der fließenden Benutzeroberflächen. Erwarten Sie daher bitte keine Vorkenntnisse.)
Referenz: http://codefirst.codeplex.com/