2016-07-15 33 views
0

我遇到了這個實用的功能:How to Add Table Prefix In Entity Framework Code First Globally?EF6中的前綴和多個表名?

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     //prefix "PE" on table name 
     modelBuilder.Types().Configure(entity => entity.ToTable("PE" + entity.ClrType.Name)); 
    } 

但這種損失,我想名字的複數功能。我不能僅僅追加"s",因爲像「小狗」這樣的類型名稱應該多元化爲「小狗」而不是「puppys」。

回答

0

可以調用底層的EF約定使用多元化服務:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    //prefix "PE" on table name 
    var pluralizationService = DbConfiguration.DependencyResolver.GetService<System.Data.Entity.Infrastructure.Pluralization.IPluralizationService>(); 
    modelBuilder.Types().Configure(entity => entity.ToTable("PE" + pluralizationService.Pluralize(entity.ClrType.Name))); 
} 

而且不要忘了添加using System.Data.Entity.Infrastructure.DependencyResolution;