2017-04-02 12 views
0

エンティティリレーションを一対多に構成しようとしています。EntityFrameworkコアの1対多の構成

子供がいて、子供なしで親を作成できるようにする場合、親を削除しないように設定する方法を教えてください。

EFコアのドキュメントの例をフォローする。どのように私はブログが投稿を持っているが削除することを許可しないように設定することができますが、あなたの投稿と一緒にブログを作成することができます。

+1

次のように。 EFは子供を持つ親を削除しようとすることを止めません。私たちはあなたが試したことを示すだけであなたを助けることができます。 –

答えて

1

DbContextのOnModelCreatingメソッドでOnDelete Restrictを設定します。

エンティティ:DbContextで

public class Blog 
{ 
    public int Id{get; set;} 

    public string Name{get; set;} 

    public virtual ICollection<Post> Posts{get; set;} 
} 

public class Post 
{ 
    public int Id{get; set;} 

    public string Name{get; set;} 

    public int BlogId {get; set;} 

    public virtual Blog Blog{get; set;} 
} 

構成:検証についてです

protected override void OnModelCreating(ModelBuilder modelBuilder) 
{ 
    base.OnModelCreating(modelBuilder); 

    modelBuilder.Entity<Blog>() 
     .HasMany(a => a.Posts) 
     .WithOne(a => a.Blog) 
     .HasForeignKey(a => a.BlogId) 
     .IsRequired() 
     .OnDelete(DeleteBehavior.Restrict); 
} 
関連する問題