在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);
}
我不明白为什么据说流畅的界面会更好。真假的啊?从我的角度来看,数据注释看起来更加清晰,并且具有更清晰的语义感觉。
我的问题是,为什么流畅的界面会比使用属性更好的选择,尤其是在这种情况下?
(注意:我对流畅接口的整体概念还很陌生,所以请不要对此有所了解。)