我正在尝试在两个类之间创建一对多关系,主要是我尝试在房间号和校园之间设置一个复合键。我尝试过使用注释并覆盖模型构建器,但仍然无效......
这是抛出的例外:
未处理的例外情况: 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 });
提前致谢! :)