我想首先更改使用实体框架代码生成的一个表的名称。
我已经创建了数据库,但是现在我想要更改名称。我更新了对"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<Metadata>()
.ToTable("Metadata");
}
如果您想确保域模型保持整洁,使用Fluent Api是首选选项。
如果您只想删除表名的多元化,那么只需添加此功能,就可以重写EFS功能,这样可以使用以下代码行:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}