【问题标题】:EF4 Code First make tables names singularEF4 Code First 使表名单数
【发布时间】:2011-05-05 13:40:34
【问题描述】:

我正在使用单数表名的标准。默认情况下,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);
        }
    }

创建的表:

  • 博客
  • 博客反馈
  • 博客类别

什么时候因为约定覆盖(以及我需要什么)应该是:

  • 博客
  • 博客反馈
  • 博客类别

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

【问题讨论】:

    标签: entity-framework-4 ef-code-first entity-framework-ctp5


    【解决方案1】:

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

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

    【讨论】:

    • 那是一个很好的!你是对的,我改变了,现在正在工作!非常感谢。
    • 请注意,在 EF5 中,参数类型是 DbModelBuilder
    • 老兄,非常感谢。就在指甲上。
    • +1:有用,为我指明了正确的方向。 -1:不完整:System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention
    【解决方案2】:

    在我们当前的项目中,我们遇到了同样的问题。我在另一个问题中写过,但这里是:

    Entity Framework v4 and underscores in column names

    这比预期的要复杂一些。

    HTH

    【讨论】:

      猜你喜欢
      • 2011-07-13
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多