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(); }