C# 首先是实体框架代码-更改表名

C# 首先是实体框架代码-更改表名,c#,.net,entity-framework,C#,.net,Entity Framework,我想先更改使用实体框架代码生成的一个表的名称 我已经创建了数据库,但现在我想更改名称。我已将项目中对“Metadata”表的所有引用更新为“Metadata”。但在数据库中生成的表仍然是“元数据”。我已经删除并重新创建了数据库,但这似乎也不起作用。使用TableAttribute也是如此。我该怎么办 谢谢 [Table("Metadata")] public class Metadata { [Required, Key] public int MetadataId { get

我想先更改使用实体框架代码生成的一个表的名称

我已经创建了数据库,但现在我想更改名称。我已将项目中对
“Metadata”
表的所有引用更新为
“Metadata”
。但在数据库中生成的表仍然是“元数据”。我已经删除并重新创建了数据库,但这似乎也不起作用。使用TableAttribute也是如此。我该怎么办

谢谢

[Table("Metadata")]
public class Metadata 
{
    [Required, Key]
    public int MetadataId { get; set; }

    [Required, ScaffoldColumn(false)]
    public int DocumentId { get; set; }

    [Required, StringLength(250), DataType(DataType.Text)]
    public string Title { get; set; }

…这里有两个选项:

数据注释:

//Changing database table name to Metadata
[Table("Metadata")]
public class Metadata 
{
  [Required, Key]
  public int MetadataId { get; set; }

  [Required, ScaffoldColumn(false)]
  public int DocumentId { get; set; }

  [Required, StringLength(250), DataType(DataType.Text)]
  public string Title { get; set; 
}
或者我们有Fluent API:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
  //Changing Database table name to Metadata
  modelBuilder.Entity<Metadata>()
      .ToTable("Metadata");
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
//将数据库表名更改为元数据
modelBuilder.Entity()
.ToTable(“元数据”);
}
如果您希望确保域模型保持整洁,那么使用Fluent API是首选选项

除此之外,如果您只想删除表名的多元化,可以使用以下代码行覆盖EFs功能:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove();
}

肯定能完成这项工作。确保您检查的是正确的数据库,而不是旧数据库。每个人都会遇到这种情况。为什么在数据库中创建的表被称为“元数据”,而不是“元数据”?我想这就是为什么我感到困惑的原因……实体框架将使类的名称多元化,就像它看待它的方式一样,如果您有一个名为“Dog”的类,例如,当几个Dog对象持久化到一个数据库时,您将拥有一个“Dogs”集合“。我可以看到你的问题,尽管元数据是单数和复数的。如果你有一个名为“Fish”的类(一个名为“Fish”的表),你也会遇到同样的问题。我想我正在失去理智……我刚在谷歌上搜索了“如何在实体框架中重命名数据库表”,遇到这个StackOverflow问题,意识到我是几个月前回答这个问题的人:)这在
DBContext
派生类中进行,fyi@Stu1986C你的最后一句话让我很惊讶,不管答案如何拯救了我的早晨;)