我正在使用名为RegisteredEvents
的Entity对象和Code-First Migrations创建表。 RegisteredEvent
将有1 User
和1 Event
。以下是我的RegisteredEvents
,User
和Event
类。
public class RegisteredEvents
{
[Key, Column(Order = 0)]
public int UserID { get; set; }
[ForeignKey("UserID")]
public User User { get; set; }
[Key, Column(Order = 1)]
public string EventID { get; set; }
[ForeignKey("EventID")]
public Event Event { get; set; }
}
public class Event : EntityData
{
public string Description { get; set; }
public int HostUserID { get; set; }
[ForeignKey("HostUserID")]
public User HostUser { get; set; }
}
public class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string Username { get; set; }
}
每当我尝试使用这些类定义进行迁移时,都会出现以下错误:
引入FOREIGN KEY约束 表'RegisteredEvents'上的'FK_dbo.RegisteredEvents_dbo.Users_UserID' 可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY 约束
我看到过使用modelBuilder
将WillCascadeOnDelete
设置为false的建议,但看起来您需要使用设置了[Required]
的内容,但这并不适用这里 - 因为它是双主键,事件和用户本身都是必需的。