1
我有一個模型,看起來像這樣(當然不是真的,但它有同樣的問題)古怪的數據庫模式
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)
無w解決我的問題:我無法理解爲什麼它會從章節到書籍生成兩個外鍵。 Parent_Id-column似乎很明顯支持導航屬性「Parent」,但是爲什麼Book_Id-column?
注:我使用實體框架版本4.1.10331.0