我们使用PluralizationService发现了某些单词的错误,例如它认为"Campus"是复数形式,并将其变成"Campu"的单数形式。
无论如何,我们已经找到了如何使用ICustomPluralizationMapping接口向服务添加自定义映射的方法,问题是,如何告诉EntityModelCodeGenerator使用我们的自定义服务而不是基本服务?
我们正在使用EF 4.2数据库与自定义T4模板。
我们使用PluralizationService发现了某些单词的错误,例如它认为"Campus"是复数形式,并将其变成"Campu"的单数形式。
无论如何,我们已经找到了如何使用ICustomPluralizationMapping接口向服务添加自定义映射的方法,问题是,如何告诉EntityModelCodeGenerator使用我们的自定义服务而不是基本服务?
我们正在使用EF 4.2数据库与自定义T4模板。
也许这篇文章会有所帮助:http://blogs.msdn.com/b/efdesign/archive/2008/12/02/pluralization.aspx
更新1: 您需要添加以下代码(示例):
//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.html 和http://www.matthidinger.com/archive/2010/02/09/customizing-the-entity-framework-t4-template-suppressing-code-analysis.aspx
更新2:文本转换和查找实体复数(集合)