2016-12-12 3 views
0

データベースを更新しようとしていますが、このエラーが発生しました。私はしばらくこのことに取り組んできましたが、何が起きているのかは分かりません。EF6 CodeFirst - FOREIGN KEY制約を導入すると、サイクルまたは複数のカスケードパスが発生する可能性があります。

テーブル 'コメント'にFOREIGN KEY制約 'FK_dbo.Comments_dbo.Users_UserId'を導入すると、サイクルまたは複数のカスケードパスが発生することがあります。 NO DELETE NO ACTIONまたはUP UP NO NO ACTIONを指定するか、他のFOREIGN KEY制約を変更してください。 制約またはインデックスを作成できませんでした。以前のエラーを参照してください。ここで

ユーザークラスです:

public class User 
{ 
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int Id { get; set; } 
    [Required] 
    public string Name { get; set; } 
    [Required] 
    public string Email { get; set; } 
    [Required] 
    public UserType ProfileType { get; set; } 
    [Required] 
    public string PasswordHash { get; set; } 
    [Required] 
    public int Location { get; set; } 
    public int? SessionTokenId { get; set; } 

    public SessionToken SessionToken { get; set; } 
    public List<Comment> Comments { get; set; } 
} 

そして、ここでは私のコメントクラスです:

public class Comment 
{ 
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int Id { get; set; } 
    [Required] 
    public int UserId { get; set; } 
    [Required] 
    public int ArticleId { get; set; } 
    [Required] 
    public string Message { get; set; } 
    [Required] 
    public DateTime PostDate { get; set; } 

    public User User { get; set; } 
    public Article Article { get; set; } 
} 

私はいくつかを追加しようとしました:

modelBuilder.Entity<Comment>() 
      .HasRequired(u => u.User) 
      .WithMany() 
      .WillCascadeOnDelete(false); 

私はそれが間違っていると思う、私はユーザーの削除に関するすべてのユーザーのコメントを削除する必要があります。

しかし、結果は得られません。私が間違って書いたことは?

答えて

0

もう1つの依存関係があるとします。たとえば、記事とユーザーの間にある可能性があります。この場合、修正プログラムを適用する必要があります。

関連する問題

 関連する問題