2012-06-18 6 views
2

Мы обнаружили некоторые ошибки для определенных слов с помощью функции PluralizationService, например, она считает, что «Campus» является множественным числом, и он выделяет его «Campu».Entity Framework EDMX - Entity Pluralization Fix

В любом случае мы выяснили, как добавить пользовательские сопоставления к сервису с помощью интерфейса ICustomPluralizationMapping, проблема в том, как мы можем сказать, что EntityModelCodeGenerator использует нашу настраиваемую службу вместо базовой?

Мы используем базу данных EF 4.2 сначала с пользовательскими шаблонами T4.

+1

На самом деле, вы используете базу данных первой. В противном случае вы спросите, как заставить EF плюрализировать объект «Кампус» в таблицу «Кампусы» (сначала модель). Кроме того, если имена ваших таблиц уже являются единственными, почему бы не просто полностью отключить плюрализацию/сингулярность? –

+0

Возможный дубликат [Есть ли способ установить пользовательские плюрализации в EDM designer 2010?] (Http://stackoverflow.com/questions/2696825/is-there-a-way-to-set-custom-pluralizations-in- edm-designer-2010) –

+0

Дэнни, да, вы правы, это на самом деле база данных. Если мы отключим плюрализацию, мы не получим плюрализуемую версию Entities в нашем объектном контексте. – 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. Чтобы сделать это, вы должны добавить шаблон в свой проект: щелкните правой кнопкой мыши на свободном пространстве в дизайнере модели и выберите «Добавить элемент генерации кода». Затем выберите нужный шаблон, и вы сможете настроить этот шаблон.

Ref: http://onlinecoder.blogspot.de/2011/03/customize-entity-framework-code.html и http://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. –

Смежные вопросы