私は試してみましたが、EF4 CTP5はそれを完全に無視しています。何が間違っていますか?
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
ことの一つは異なる場合がありますが、私は二つのプロジェクトのコアとWebに私の解決策を分割しています。コアにはモデル、サービス、すべてのコードがあります。 Webには、コントローラとビューとCoreへの参照のみがあります。 SetInitializer()。Seed()はCoreの関数内にあり、Web global.asaxではCore.SetInitializerが呼び出されるため、すべてのCTP5関数をコア内に保持します。データベースは再作成されました。大丈夫です。データは大文字で入力されます。大文字と小文字の区別はなく、表名は複数あります。
私は、modelBuilder.Entity()。ToTable( "ApplicationUser");のような形式で規約を上書きできることは知っていました。私はテーブルの特異な命名がまだ "in"のものであるかどうか疑問に思っています。 –
流暢なAPIを使っていると言いましたが、それは*慣習*を無効にする*という意味ではありません。 *プラグイン可能な規約*によるアプリケーションのために、完全に*大会をオフにすることができます。明確にするために私の答えを更新しました。 –
説明と例をありがとう。私はEF CodeFirstとMVC 3の間のFirehoseから飲んでいるような気がします! –