Tum*_*ums 25 .net c# 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; }
Run Code Online (Sandbox Code Playgroud)
...
Stu*_*86C 47
你有两个选择 -
数据注释:
//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;
}
Run Code Online (Sandbox Code Playgroud)
或者我们有流利的Api:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//Changing Database table name to Metadata
modelBuilder.Entity<Metadata>()
.ToTable("Metadata");
}
Run Code Online (Sandbox Code Playgroud)
如果要确保域模型保持整洁,则使用Fluent Api是首选选项.
只是添加到此,如果您只想删除表名的复数,则可以使用以下代码行覆盖EF的功能:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
Run Code Online (Sandbox Code Playgroud)