【问题标题】:EF CodeFirst Tables are being named incorrectlyEF CodeFirst 表的命名不正确
【发布时间】:2015-02-08 12:20:04
【问题描述】:

该表在 DB 中没有按照应有的名称命名。这是上下文:

ApplicationDBContext:

public IDbSet<Artwork> Artwork { get; set; }

在数据库中,该表应命名为 Artwork,但不是将其命名为 Artworks(我之前曾将其命名为这样,但现在当我尝试仅将其命名为 Artwork 时,它仍然是“Artworks”) .我试图删除并再次创建它,但没有任何反应。有人可以解释一下为什么会发生这种情况吗?

谢谢,

马吕斯·J.

【问题讨论】:

    标签: database entity-framework code-first


    【解决方案1】:

    默认情况下,Entity Framework 使用Pluralizing Table Name Convention 来设置表名。

    您可以在 OnModelCreating 方法中删除它:

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

    或者显式映射表名:

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {    
        modelBuilder.Entity<Artwork>().ToTable("Artwork");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      相关资源
      最近更新 更多