c# - 一个 DbSet 的 EF 代码优先 PluralizingTableNameConvention

标签 c# entity-framework-4 entity-framework-4.1

如何仅为单个表/DbSet 切换此约定 PluralizingTableNameConvention?据我所知,我只能对给定 DbContext

的所有 DbSets 执行此操作

最佳答案

如果只有一个实体映射到非复数形式的表,则可以删除 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");
    }
 }

关于c# - 一个 DbSet 的 EF 代码优先 PluralizingTableNameConvention,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8222943/

相关文章:

C#:我应该抛出 ArgumentException 还是 DirectoryNotFoundException?

c# - Regex 和 span 类如何在此代码中工作?

c# - 何时调用 File.Dispose()

c# - 显示 Entity Framework 为插入/更新生成的 SQL

c# - ObjectSet的Where()方法和内存

c# - 给定一个通用 <E> 如何创建一个新的 E 并返回它?

c# - 使用数据注释和代码优先的自定义验证属性

.net - 如何使用 Code-First EF 4.1 从数据库中删除多个项目

vb.net - 实体 SQLCE 在 app.config 文件中找不到连接字符串

c# - SynchronizationContext.Send 和 SynchronizationContext.Post 有什么区别?