В руководстве EF 4.1 Code First указан следующий код:
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/