entity framework代码优先 – 更改表名称

我想先更改使用Entity Framework代码生成的某个表的名称。

我已经创建了数据库,但现在我想更改名称。 我在项目中将所有对"Metadatas"表的引用更新为"Metadata" 。 但是在数据库中生成的表仍然是“Metadatas”。 我已经删除并重新创建了数据库,但这似乎也没有用。 也没有使用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; } 

或者我们有流利的Api:

 protected override void OnModelCreating(DbModelBuilder modelBuilder) { //Changing Database table name to Metadata modelBuilder.Entity() .ToTable("Metadata"); } 

如果要确保域模型保持整洁,则使用Fluent Api是首选选项。

只是添加到此,如果您只想删除表名的复数,可以使用以下代码行覆盖EF的function:

 protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove(); }