我正在使用单数表名称的标准。默认情况下,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);
}
}
创建的表:
因为约定覆盖(以及我需要的)应该是:
任何人都知道为什么覆盖线不起作用?非常感谢。
答案 0 :(得分:27)
你使用了错误的约定。您需要执行以下操作。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
答案 1 :(得分:0)
我当前的项目我们遇到了同样的问题。我在另一个问题中写过这个问题,但现在是:
Entity Framework v4 and underscores in column names
比预期的要复杂一点。
HTH