1

我正在尝试在 2 个班级之间创建一对多的关系,主要是我试图在房间号和 Campusid 之间设置一个复合键。我尝试使用注释并覆盖模型构建器,但仍然没有任何效果......

这是抛出的异常:

未处理的异常:System.Data.Entity.ModelConfiguration.ModelValidationException:在模型生成期间检测到一个或多个验证错误:Room_Campus_Target_Room_Campus_Source::关系约束中的从属角色和主体角色中的属性数量必须相同。

这是我的模型:

public class Room
{
    public int Id { get; set; }

    [StringLength(4, MinimumLength = 3)]
    public string Number { get; set; }
    public int CampusId { get; set; }
    //[ForeignKey("Number, CampusId")]
    public virtual Campus Campus { get; set; }
}

public class Campus
{
    public Campus()
    {
        this.Rooms = new HashSet<Room>();
    }
    public int Id { get; set; }
    [StringLength(4)]
    public string Number { get; set; }
    public virtual ICollection<Room> Rooms { get; set; }
}

这是我的模型构建器 attepmt 有同样的例外..

modelBuilder.Entity<Room>()
            .HasRequired(r => r.Campus)
            .WithMany(c => c.Rooms)
            .HasForeignKey(c => new { c.Number, c.CampusId });

提前致谢!:)

4

0 回答 0