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