私は試しましたが、EF4CTP5はそれを完全に無視しているようです。何が間違っている可能性がありますか?
セクションの使用:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration;
using System.Data.Entity.ModelConfiguration.Conventions.Edm;
DbContext:
public class SiteDataContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<BlogFeedback> BlogFeedbacks { get; set; }
public DbSet<BlogCategoryList> BlogCategoryLists { get; set; }
public DbSet<BlogCategory> BlogCategories { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingEntitySetNameConvention>();
base.OnModelCreating(modelBuilder);
}
}
POCOクラス
public class Blog
{...}
public class BlogFeedback
{...}
public class BlogCategoryList
{...}
public class BlogCategory
{...}
生成されたテーブル:
Blogs
BlogCategories
BlogCategoryLists
BlogFeedbacks
必要なもの:
Blog
BlogCategory
BlogCategoryList
BlogFeedback
異なる可能性があるのは、ソリューションをCoreとWebの2つのプロジェクトに分割したことです。Coreには、モデル、サービス、およびすべてのコードファーストがあります。Webには、コントローラーとビュー、およびCoreへの参照のみがあります。SetInitializer()。Seed()はCoreの関数内にあり、Web global.asaxではCore.SetInitializerが呼び出されるため、すべてのCTP5関数をCore内に保持します。データベースは正常に再作成され、データは正常に入力されます。慣例により、modelBuilderオーバーライドを無視して、複数のテーブル名が保持されます。