W samouczku dotyczącym kodu EF 4.1 podano następujący kod:
public class Department
{
public int DepartmentId { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<Collaborator> Collaborators { get; set; }
}
Następnie wyjaśniono, że płynny interfejs jest bardziej elastyczny:
Adnotacje danych są zdecydowanie łatwe w użyciu, ale lepiej jest zastosować podejście programowe, które zapewnia znacznie większą elastyczność.
Podano przykład użycia płynnego interfejsu:
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);
}
Nie rozumiem, dlaczego płynny interfejs jest podobno lepszy. Czy to naprawdę Z mojego punktu widzenia wygląda na to, że adnotacje danych są bardziej wyraźne i mają bardziej czysty semantyczny charakter.
Moje pytanie brzmi: dlaczego płynny interfejs byłby lepszym rozwiązaniem niż używanie atrybutów, szczególnie w tym przypadku?
(Uwaga: Jestem całkiem nowy w całej koncepcji płynnych interfejsów, więc proszę nie oczekiwać wcześniejszej wiedzy na ten temat.)
Odniesienie: http://codefirst.codeplex.com/