该表在数据库中的命名方式与该表的命名方式不同。以下是上下文:
应用程序上下文:

public IDbSet<Artwork> Artwork { get; set; }

在数据库中,这个表应该命名为artwork,而不是artworks(我以前也这样命名过,但现在当我试图将它命名为artwork时,它仍然是“artworks”)。我试着放弃并再次创造它,但什么也没有发生。有人能解释一下为什么会发生这种情况吗?
谢谢您,
马吕斯J。

最佳答案

默认情况下,实体框架使用Pluralizing Table Name Convention来设置表名。
您可以通过OnModelCreating方法删除它:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}

或者显式映射表名:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Artwork>().ToTable("Artwork");
}

关于database - EF代码优先表被错误命名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28393851/

10-10 03:22