小编cyb*_*dOo的帖子

实体类型的属性是键的一部分,因此不能修改或标记为已修改

我使用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)

这是此表的迁移代码: …

c# entity-framework

5
推荐指数
1
解决办法
6001
查看次数

标签 统计

c# ×1

entity-framework ×1