Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database EF CodeFirst表的命名不正确_Database_Entity Framework_Code First - Fatal编程技术网

Database EF CodeFirst表的命名不正确

Database EF CodeFirst表的命名不正确,database,entity-framework,code-first,Database,Entity Framework,Code First,该表在数据库中的命名与预期的命名不同。以下是上下文: 应用程序上下文: public IDbSet<Artwork> Artwork { get; set; } public IDbSet Artwork{get;set;} 在数据库中,该表应命名为Artwork,而不是Artworks(我以前将其命名为Artworks,但现在我尝试将其命名为Artwork,它仍然是“Artworks”)。我试着放弃并再次创建它,但什么都没有发生。有人能解释一下为什么会发生这种情况吗 谢谢, M

该表在数据库中的命名与预期的命名不同。以下是上下文:

应用程序上下文:

public IDbSet<Artwork> Artwork { get; set; }
public IDbSet Artwork{get;set;}
在数据库中,该表应命名为Artwork,而不是Artworks(我以前将其命名为Artworks,但现在我尝试将其命名为Artwork,它仍然是“Artworks”)。我试着放弃并再次创建它,但什么都没有发生。有人能解释一下为什么会发生这种情况吗

谢谢,


Marius J.

默认情况下,实体框架使用设置表名

您可以在
OnModelCreating
方法中删除它,不过:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{    
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{    
modelBuilder.Conventions.Remove();
}
或显式映射表名:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{    
    modelBuilder.Entity<Artwork>().ToTable("Artwork");
}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{    
modelBuilder.Entity().ToTable(“Artwork”);
}