2012-06-18 28 views
2

我們發現了某些單詞與PluralizationService的一些錯誤,例如它認爲「校園」是複數,並且它通過「Campu」單獨化。實體框架EDMX - 實體多元化修復

無論如何,我們已經想出瞭如何使用ICustomPluralizationMapping接口將自定義映射添加到服務中,問題是,我們如何告訴EntityModelCodeGenerator使用我們的定製服務而不是基本定製服務?

我們首先使用EF 4.2數據庫和定製的T4模板。

+1

其實,你第一次使用的數據庫。否則,你會問如何讓EF將實體「校園」複製到「校園」表中(模型第一)。另外,如果你的表名已經是單數,爲什麼不完全禁用複數/單數化呢? –

+0

[有沒有在EDM設計器2010中設置自定義複數的方法?](http://stackoverflow.com/questions/2696825/is-there-a-way-to-set-custom-pluralizations-in- edm-designer-2010) –

+0

丹尼,是的,你是對的,它實際上是數據庫第一。如果我們禁用多元化,那麼我們不會在我們的對象上下文中獲得複數形式的實體。 – EkoostikMartin

回答

1

也許這篇文章是有幫助的:http://blogs.msdn.com/b/efdesign/archive/2008/12/02/pluralization.aspx

UPDATE1: 您將需要添加此代碼(樣品):

//Create an EDM from SSDL generator 
EntityModelSchemaGenerator generator = 
    new EntityModelSchemaGenerator(
     storageModel, 
     "MyNamespace", 
     "MyContainer", 
     pluralizationService); 

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

到T4模板。爲此,您必須將模板添加到項目中:右鍵單擊模型設計器中的可用空間,然後選擇「添加代碼生成項目」。然後選擇所需的模板,您將可以自定義此模板。

編號:http://onlinecoder.blogspot.de/2011/03/customize-entity-framework-code.htmlhttp://www.matthidinger.com/archive/2010/02/09/customizing-the-entity-framework-t4-template-suppressing-code-analysis.aspx

UPDATE2:Text Transformations & Finding Entity Plural (Collection)

+0

是的,我看過這篇文章,這很有幫助,但問題是,我在哪裏將調用放置到EntityModelSchemaGenerator? – EkoostikMartin

+0

我編輯了我的答案。 – SolarX

+0

但是這不會改變我們在實體設計器中看到的實體名稱,對嗎? Afaik在db-first中使用T4模板來生成最終的POCO類。 –