2011-09-08 51 views
2

我想添加專門的多元化規則到我的項目中,因爲我的數據庫中有名字,比如FAS和其他以「s」結尾的東西,我希望這些是FAS和FASs,但默認的複數想要使它FASes或類似的,我不想要的。然後我試圖使用本指南http://blogs.msdn.com/b/efdesign/archive/2008/12/02/pluralization.aspx,但我很難弄清楚在哪裏放置這些代碼?我如何確保此代碼在我的項目啓動時運行(我想它必須在啓動時運行?)我在哪裏把多重化規則在asp.net mvc3

那麼,我在哪裏放這個代碼?

PluralizationService pluralizationService = 
    PluralizationService.CreateService( 
     new CultureInfo("en-US")); 

ICustomPluralizationMapping mapping = 
    pluralizationService as ICustomPluralizationMapping; 

if (mapping != null) // it shouldn't be but just checking 
{ 
    //Specifying the child pluralizes as children 
    mapping.Add("FAS", "FASs"); 
} 

回答

1

答案是在教程:你必須使用它的模式發生器採用多元化的服務,以創建模式:

EntityModelSchemaGenerator generator = 
    new EntityModelSchemaGenerator( 
     storageModel, 
     "MyNamespace", 
     "MyContainer", 
     pluralizationService); 

//Generate CSDL and MSL (in memory) 
generator.GenerateMetadata(); 
+0

這是否已經在我的代碼?如果是,那麼我在哪裏可以找到? – Mech0z

0

你什麼時候需要得到實體的名字多元狀態?

我可能是錯的,但在我看來,你可以簡單地將表添加到模型中,並在設計器中重命名它們。

我可以忽略一些信息嗎?

+0

問題是我們(我們的團隊)有很多模型,每次我們對它們進行一些更改時,我們都不想重命名它們,所以我們希望當我們單擊「更新」時使用正確的名稱創建edmx文件模型從數據庫「,並添加我們的表格,它非常容易出錯,我們必須編輯這麼多的表格,如果我們忘記了一個,那麼當它命名爲」FASses「而不是」FASs「時,地獄會鬆動 – Mech0z

+0

@ Mech0z:EF設計師將保存您的當您執行「從數據庫更新模型」時更改名稱。我一直在這樣做。試一試。 –

+0

如果我例如更改一個表數據,所以其中一列不再是可空的,那麼如果我只是使用「刷新」而不是「添加」,那麼它不會更新模型,所以我必須刪除它並再次添加表,現在名字不被保留。 – Mech0z