У меня есть модель, которая выглядит следующим образом (ну, не совсем, но у нее та же проблема)
public class Book
{
public int Id { get; set; }
public ICollection<Chapter> Chapters { get; set; }
public Chapter FirstUnreadChapter { get; set; }
}
public class Chapter
{
public int Id { get; set; }
public Book Parent { get; set; }
}
И такой контейнер:
public class BookContext : DbContext
{
public DbSet<Chapter> Chapters { get; set; }
public DbSet<Book> Books { get; set; }
}
Теперь позволяем создатьсама база данных в SQL Server Express генерирует следующие таблицы базы данных:
CREATE TABLE [dbo].[Books](
[Id] [int] IDENTITY(1,1) NOT NULL,
[FirstUnreadChapter_Id] [int] NULL)
CREATE TABLE [dbo].[Chapters](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Book_Id] [int] NULL,
[Parent_Id] [int] NULL)
Теперь к моей проблеме: я не могу понять, почему она генерирует два внешних ключа от глав до книг.Кажется очевидным, что столбец Parent_Id поддерживает свойство навигации «Родитель», но почему столбец Book_Id?
Примечание. Я использую Entity Framework версии 4.1.10331.0
.