У першому підручнику з коду EF 4.1 наведено наступний код:
public class Department
{
public int DepartmentId { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<Collaborator> Collaborators { get; set; }
}
Потім пояснюється, що плавний інтерфейс є більш гнучким:
Анотації даних, безумовно, прості у використанні, але бажано використовувати програмний підхід, який забезпечує набагато більшу гнучкість.
Далі наведено приклад використання вільного інтерфейсу:
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);
}
Я не можу зрозуміти, чому вільний інтерфейс нібито кращий. Це насправді? З моєї точки зору, схоже, що анотації до даних є більш чіткими і мають більше чистого семантичного відчуття.
Моє запитання: чому міг би вільний інтерфейс бути кращим варіантом, ніж використання атрибутів, особливо в цьому випадку?
(Примітка. Я зовсім новачок у всій концепції вільних інтерфейсів, тому, будь ласка, не очікуйте, що попередніх знань щодо цього немає.)
Довідка: http://codefirst.codeplex.com/