gpt4 book ai didi

c# - Entity Framework Code First - 更改表名

转载 作者:IT王子 更新时间:2023-10-29 04:21:15 26 4
gpt4 key购买 nike

我想首先更改使用 Entity Framework 代码生成的其中一个表的名称。

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

或者我们有 Fluent API:

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

如果您想确保领域模型保持整洁,使用 Fluent API 是首选。

除此之外,如果您只想删除表名的复数形式,您可以使用以下代码行覆盖 EF 的功能:

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

关于c# - Entity Framework Code First - 更改表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21656617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com