假设我有以下2个模型:
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public Blog Blog { get; set; }
}
现在,如果我想在DbContext中配置模型关系,以下两种方式有什么区别:
modelBuilder.Entity<Post>()
.HasOne(p => p.Blog)
.WithMany(b => b.Posts);
和
modelBuilder.Entity<Blog>()
.HasMany(b => b.Posts)
.WithOne(p => p.blog);
如果有区别的话,它是什么?我应该写两个还是只写一个?
另外一件事: 我需要定义外键吗?根据我对数据库的了解,你不能在没有外键的情况下创建关系,但是EF不要求你拥有外键字段。那么EF如何处理不知道外键的关系?会导致性能下降或错误吗?