EF代码优先PluralizingTableNameConvention用于一个DbSet

16
我该如何仅为单个表/DbSet切换此约定PluralizingTableNameConvention?据我所知,我只能为给定DbContext的所有DbSets执行此操作。
1个回答

28

如果你只有一个实体映射到未使用复数形式的表,则可以移除PluralizingTableNameConvention并手动配置实体的表名。

public class MyContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

        modelBuilder.Entity<Item>().ToTable("Items");
    }
 }

或者如果反过来的话

public class MyContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<Item>().ToTable("Item");
    }
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接