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

时间:2017-04-14 20:55:11

标签: c# entity-framework ef-code-first composite-key ef-model-builder

我正在尝试在两个类之间创建一对多关系,主要是我尝试在房间号和校园之间设置一个复合键。我尝试过使用注释并覆盖模型构建器,但仍然无效......

这是抛出的例外:

  

未处理的例外情况:   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; }
}

这是我的模型制作者,同样的例外..

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

提前致谢! :)

0 个答案:

没有答案