如何使用Fluent API指定外键所指的主体实体?

How to specify the principal entity to which the foreign key refers using the Fluent API?

如何使用Fluent指定外键所指的主体实体API?

我正在通过 here 的教程学习 EF Core。

我遇到了以下示例:

public class Author
{
    public int AuthorId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public ICollection<Book> Books { get; set; }
}
public class Book
{
    public int BookId { get; set; }
    public string Title { get; set; }
    public int AuthorFK { get; set; }
    public Author Author { get; set; }
}
public class SampleContext : DbContext
{
    public DbSet<Author> Authors { get; set; }
    public DbSet<Book> Books { get; set; }
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Book>()
            .HasForeignKey(p => p.AuthorFK);
    }
}

而且我不明白 EF Core 如何知道 AuthorFK 指的是 Author 实体。 IE。例如,如果我希望 AuthorFK 成为不同于 Author 实体的实体的外键,我该怎么做?

没想到教程居然错了。正确的方法是:

modelBuilder.Entity<Book>()
    .HasOne(e => e.Author)
    .WithMany()
    .HasForeignKey(e => e.AuthorFK);

显示的方法 (modelBuilder.Entity<Book>().HasForeignKey) 不存在。

我想当你看到这个时,一切都会有意义。