Предположим, что у меня есть две сущности следующим образом:
class Blog
{
public Blog()
{
Posts = new HashSet<Post>();
}
public int Id { get; set; }
// other properties go here
public ICollection<Post> Posts { get; set; }
}
class Post
{
public int Id { get; set; }
//other properties go here
public int FKBlogId { get; set; }
public Blog Blog { get; set; }
}
Поскольку каждое сообщение принадлежит блогу и каждый блог может содержать ноль или более сообщений , отношение один ко многим.
Я не нашел в Интернете статьи, обсуждающей, нужно ли нам настраивать отношения для обеих сущностей следующим образом.
class Context : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.HasMany(b => b.Posts)
.WithRequired(p => p.Blog)
.HasForeignKey(p => p.FKBlogId);
modelBuilder.Entity<Post>()
.HasRequired(p => p.Blog)
.WithMany(b => b.Posts)
.HasForeignKey(p => p.FKBlogId);
}
}
Должны ли мы настроить отношения на обоих объектах? Другими словами, достаточно ли одного из следующих?
modelBuilder.Entity<Blog>()
.HasMany(b => b.Posts)
.WithRequired(p => p.Blog)
.HasForeignKey(p => p.FKBlogId);
или
modelBuilder.Entity<Post>()
.HasRequired(p => p.Blog)
.WithMany(b => b.Posts)
.HasForeignKey(p => p.FKBlogId);
Я проверил, используя один из них, и я не могу заметить никакой разницы между ними. Не могли бы вы дать мне подтверждение правильности моего понимания?