外键级联删除无动作

时间:2017-08-24 02:37:56

标签: .net entity-framework ef-code-first entity-framework-6

我正在使用名为RegisteredEvents的Entity对象和Code-First Migrations创建表。 RegisteredEvent将有1 User和1 Event。以下是我的RegisteredEventsUserEvent类。

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   约束

我看到过使用modelBuilderWillCascadeOnDelete设置为false的建议,但看起来您需要使用设置了[Required]的内容,但这并不适用这里 - 因为它是双主键,事件和用户本身都是必需的。

0 个答案:

没有答案