EF 不会创建我的表

本文关键字:我的 创建 EF | 更新日期: 2023-09-27 17:55:39

我有三个类,使用 TPH(table per hiracy):

abstract class Cat { int Id;    string Name; }
class ItemCat: Cat { }
class PhotoCat: Cat{ }

class Db:DbContext
    {
    Db()
      {
        Database.SetInitializer(new MigrateDatabaseToLatestVersion<Db,Migrations.Configuration>());
      }
      DbSet<ItemCat> ItemCats;
      DbSet<PhotoCat> PhotoCats;
    }

并且还有 Seed() 方法来播种 ItemCats

更新数据库运行良好并播种表。

但是EF没有创建我的ItemCat!并让它创建Cats!并播种它。 我在 DbContext 中没有猫。

我还将[Table("ItemCats")]添加到ItemCat类中,出现了ItemCats表,但其中只有id列!!

我认为这是因为 ItemCat 和 PhotoCat 类是空的,只是从 Cat 类继承而来。这对我来说很奇怪。

EF 不会创建我的表

将配置更改为"每个类型表"应提供所需的表。有关每种类型的表如何生成表的更多详细信息,请参阅此处。