0
ASP.NETコアにユーザーリレーションシップテーブルを作成していくつかの問題が発生します。このためカスケード削除を無効にする必要がある場合、どのようにして孤児を防ぐのですか?ユーザーリレーションシップテーブルを作成します
エラー:
Introducing FOREIGN KEY constraint 'FK_UserRelationships_AspNetUsers_User2Id' on table 'UserRelationships' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
ApplicationDbContext.cs:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<UserRelationship>().HasKey(x => new { x.User1Id, x.User2Id });
}
public DbSet<UserRelationship> UserRelationships { get; set; }
}
私の現在のモデル:EFは、カスケード接続されますので、二度、デフォルトでは、削除要求されるよう
public class UserRelationship
{
public byte RelationshipType { get; set; }
public ApplicationUser User1 { get; set; }
public string User1Id { get; set; }
public ApplicationUser User2 { get; set; }
public string User2Id { get; set; }
}
:
あなたがいないと、それを伝える必要があります。私は何かが恋しいですか? – Zack
カスケード削除を無効にすると、どのようにして孤児を防ぐことができますか? – Zack
申し訳ありませんが、それがEFコアであることを認識していませんでした。 [ここ](https://docs.microsoft.com/en-us/ef/core/modeling/relationships)を参照してください。 UserRelationshipを削除すると、ユーザーを削除したくないと思っています。ユーザーを削除すると、既存の関係レコードをチェックして最初に削除することができます([ここ](https://stackoverflow.com/questions/16565078/delete-parent-with-children-in-one-to-many -関係))。 –