我使用Entity Framework 7.0.0-rc1-final和SQL 2014 LocalDB(代码优先).我有模特课:
public class UnitGroup {
public int UnitGroupId { get; private set; }
public string Name { get; set; }
public ObservableCollection<Unit> UnitSet { get; set; }
public UnitGroup() {
UnitSet = new ObservableCollection<Unit>();
}
}
Run Code Online (Sandbox Code Playgroud)
我使用此委托进行流畅配置:
Action<EntityTypeBuilder<UnitGroup>> UnitGroupConfig = delegate (EntityTypeBuilder<UnitGroup> e) {
e.Property(p => p.Name).IsVarchar(25).IsRequired();
e.HasAlternateKey(p => p.Name);
};
Run Code Online (Sandbox Code Playgroud)
IsVarchar()是我的扩展方法:
public static PropertyBuilder IsVarchar(this PropertyBuilder<string> propertyBuilder, int maxLength) {
return propertyBuilder.HasColumnType($"varchar({maxLength})");
}
Run Code Online (Sandbox Code Playgroud)
然后我像这样使用它:
protected override void OnModelCreating(ModelBuilder modelBuilder) {
modelBuilder.Entity<UnitGroup>(e => UnitGroupConfig(e));
}
Run Code Online (Sandbox Code Playgroud)
这是此表的迁移代码: …