我使用标准表名称。 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;


数据上下文:

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);
        }
    }


创建的表:


网志
博客反馈
博客类别


什么时候因为约定优先(以及我需要的)是:


博客
博客反馈
BlogCategory


任何人都有一个想法,为什么覆盖线不起作用?非常感谢。

最佳答案

您使用了错误的约定。您需要执行以下操作。

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

关于entity-framework-4 - EF4代码优先使表名称单数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5898661/

10-13 08:11