Код EF4 Сначала создайте имена таблиц в единственном числе - PullRequest
13 голосов
/ 05 мая 2011

Я использую стандарты для имен таблиц в единственном числе.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);
        }
    }

Создано таблиц:

  • Блоги
  • BlogFeedbacks
  • BlogCategories

Когда, поскольку переопределение соглашения (и то, что мне нужно) должно быть:

  • Blog
  • BlogFeedback
  • BlogCategory

У кого-нибудь есть идеи, почему не работает строка переопределения?Большое спасибо.

Ответы [ 2 ]

27 голосов
/ 05 мая 2011

Вы используете неправильное соглашение.Вам нужно сделать следующее.

protected override void OnModelCreating(ModelBuilder modelBuilder)
{    
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
0 голосов
/ 05 мая 2011

В нашем текущем проекте у нас была такая же проблема.Я писал об этом в другом вопросе, но вот он:

Entity Framework v4 и подчеркивание в именах столбцов

Это немного сложнее, чем ожидалось.

НТН

...