Table-Per-Type和许多继承一个基类

时间:2017-06-11 10:46:48

标签: entity-framework

我有两个班,想要使用TPT

public class Book {
    public int BookId { get;set; }
    public string Title { get;set; }
}

public class BookInLibrary : Book {
    public int CopyNumber { get; set;}
    public bool IsBorrowed { get;set; }
}

问题是如何将两个BookInLibrarys插入同一个图书实体?

像这样:

  

图书(BookId,标题)

     

书(1,哈利波特 - 哲学家的石头);

     

BookInLibrary(BookId,CopyNumber,IsBorrowed)

     

BookInLibrary(1,1,false)

     

BookInLibrary(1,2,false)

1 个答案:

答案 0 :(得分:1)

这是一个关联而不是继承,你的类模型应该是这样的:

public class Book {
    public int BookId { get;set; }
    public string Title { get;set; }
}

public class BookInLibrary{
    public int Bookid {get;set;}
    public Book Book {get;set;}
    public int CopyNumber { get; set;}
    public bool IsBorrowed { get;set; }
}

最好是将BookinLibrary重命名为BookInstanceBookCopy。更有意义的东西

如果你不为每本借书保持一对一的关系,你可以简单地在CopiesAvailable课程内放一个Book属性,并在借书时增加或减少它回。