EF4 Code First使表名称为单数

Nes*_*tor 13 entity-framework-4 ef-code-first entity-framework-ctp5

我正在使用单数表名称的标准.默认情况下,EF4 Code First具有复数表名.我已经把代码覆盖了这个约定,但似乎没有用.

使用部分:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.Data.Entity.Database;
using System.Data.Entity.ModelConfiguration;
using System.Data.Entity.ModelConfiguration.Conventions.Edm;
Run Code Online (Sandbox Code Playgroud)

数据背景:

public class SiteDataContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<BlogFeedback> BlogFeedbacks { get; set; }
        public DbSet<BlogCategory> BlogCategories { get; set; }

        // Twist our database
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingEntitySetNameConvention>();
            base.OnModelCreating(modelBuilder);
        }
    }
Run Code Online (Sandbox Code Playgroud)

创建的表:

  • 博客
  • BlogFeedbacks
  • BlogCategories

因为约定覆盖(以及我需要的)应该是:

  • 博客
  • BlogFeedback
  • BlogCategory

任何人都知道为什么覆盖线不起作用?非常感谢.

Lia*_*amB 27

你使用错误的约定.你需要做以下事情.

protected override void OnModelCreating(ModelBuilder modelBuilder)
{    
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在EF5中,参数类型为DbModelBuilder (2认同)