0

EF Reverse Code First Tool 正在生成复合键

public vw_ResourcesMap()
    {
        // Primary Key
        this.HasKey(t => new { t.Refno, t.Obsolete }); // Why???

        // Properties
        this.Property(t => t.Refno)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

        this.Property(t => t.Name)
            .HasMaxLength(50);

        this.Property(t => t.LocnID)
            .IsFixedLength()
            .HasMaxLength(2);

        this.Property(t => t.Created_by)
            .HasMaxLength(50);

        // Table & Column Mappings
        this.ToTable("vw_Resources");
        this.Property(t => t.Refno).HasColumnName("Refno");
        this.Property(t => t.Name).HasColumnName("Name");
        this.Property(t => t.Head).HasColumnName("Head");
        this.Property(t => t.LocnID).HasColumnName("LocnID");
        this.Property(t => t.Obsolete).HasColumnName("Obsolete");
        this.Property(t => t.Created_by).HasColumnName("Created_by");
        this.Property(t => t.Version).HasColumnName("Version");
        this.Property(t => t.Rank).HasColumnName("Rank");
    }
}

我必须更改主键声明以this.HasKey(t => t.Refno)映射关系,否则我会得到下面的异常。

关系约束中的从属角色和主体角色中的属性数量必须相同。

也许这是一个错误——IDK

一切正常,但想增加理解和知识。

谢谢!

4

1 回答 1

0

数据库视图没有主键,因此 EF 尝试通过使用所有不使用二进制数据类型的非可空列来推断键。

于 2012-05-24T22:17:59.073 回答