我想先更改使用实体框架代码生成的一个表的名称。
我已经创建了数据库,但现在我想更改名称。我已经在我的项目中将对"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; }
..。
发布于 2014-02-10 04:47:43
这里有两个选项:
数据注释:
//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");
}
如果您想确保您的域模型保持整洁,那么使用Fluent API是首选的选择。
此外,如果您只想删除表名的复数形式,则可以使用以下代码行覆盖EFs功能:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
https://stackoverflow.com/questions/21656617
复制相似问题