2011-05-05 48 views
13

我使用單數表名稱的標準。 EF4 Code First默認情況下會複製表格名稱。我已經把代碼覆蓋這個約定,但似乎不工作。EF4代碼首先使表格名稱單數

使用部分:

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

當因爲公約倍率(我需要什麼)應該是:

  • 博客
  • BlogFeedback
  • BlogCategory

任何人有一個想法,爲什麼倍率線不工作?非常感謝。

回答

27

您使用了錯誤的約定。你需要做下面的事情。

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

這是一個很好的!你是對的,我改變了,現在正在工作!非常感謝。 – Nestor 2011-05-05 16:29:24

+2

請注意,在EF5中,參數類型是DbModelBuilder – justabuzz 2012-11-02 00:46:19

+0

Dude,謝謝。就在指甲上。 – VivekDev 2015-12-23 04:38:17

相關問題