我尝试从我的模型创建数据库,但我不断收到错误Introducing FOREIGN KEY constraint 'FK_dbo.Reports_dbo.UserProfiles_UserId' on table 'Reports' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint. See previous errors.
任何人都知道我的模型/设置可能出现什么问题?
这些都是使用的模型
public class Report {
[Key]
public int Id { get; set; }
[Required]
public string Number { get; set; }
public bool Synced { get; set; }
public DateTime CreationDate { get; set; }
public int NewCommentId { get; set; }
public virtual Comment NewComment { get; set; }
public int UserId { get; set; }
public virtual UserProfile User { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
public virtual ICollection<Photo> PhotosBefore { get; set; }
public virtual ICollection<Photo> PhotosAfter { get; set; }
}
public class Photo {
[Key]
public int Id { get; set; }
public string Image { get; set; }
public bool Synced { get; set; }
public DateTime CreationDate { get; set; }
public int ReportId { get; set; }
public virtual Report Report { get; set; }
public int UserId { get; set; }
public virtual UserProfile User { get; set; }
}
public class Comment {
[Key]
public int Id { get; set; }
public DateTime CreationDate { get; set; }
public string Text { get; set; }
public int ReportId { get; set; }
public virtual Report Report { get; set; }
public int UserId { get; set; }
public virtual UserProfile User { get; set; }
}
public class UserProfile {
[Key]
public int Id { get; set; }
public string Stamnummer { get; set; }
public string Leverancier { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
public virtual ICollection<Report> Reports { get; set; }
public virtual ICollection<Photo> Photos { get; set; }
}
答案 0 :(得分:0)
为了确定,我们需要了解如何使用User
方法中的模型构建器配置关系。根据您提供的错误消息,您似乎已配置关系,以便将其中一个实体配置为从两个或多个其他实体中删除级联。
作为一个例子(可能不是这种情况,而只是描述问题的一种方法):
Comments
与User
Reports
与Report
Comments
与Comment
User
已配置为需要Comment
Report
已配置为需要Report
User
已配置为需要one
需要关系的实体User
一侧的任何一对多关系将默认配置为删除时级联。在这种情况下,如果Reports
被删除,则会触发Comments
和Report
的级联。每个Comments
也会导致{{1}}上的级联。
解决方案是禁用其中一个关系的级联删除。你可以找到一个类似的问题here来描述我上面提到的内容。