题
在.NET 3.5中,如果我生成了linq到SQL数据上下文,则可以使名称相交。在我的代码中,我需要使一些术语相关。我可以使用Linq使用的任何方法来生成我的复数吗?
解决方案
Linq到SQL不会暴露其复数逻辑。对反射器进行快速检查表明,它并没有使用非常复杂的算法:
如果以“ x”,“ ch”,“ sh”或“ ss”结尾,则添加“ es”。
如果以“ y”结尾为辅音,请删除y并添加'ies'。
否则,添加“ S”。
如果是.NET 4,则EF的复数服务更加彻底。以防万一您需要使“肺炎肺炎孢子造菌病”复合。
其他提示
您必须使用反射器来挖掘为Linq-to-SQL设计器代码生成的Visual Studio组件。
还有一个.NET发电器端口,可以从事相同的工作。作者的博客现已下降,但可在 http://cid-net.googlecode.com/svn/trunk/src/cid.mvc/inflector.cs 在其他人中。
(通过 供应器的替代品)
LINQ到SQL使用一个相当简单的系统进行复数化。如果您要处理复杂的术语,我建议您 使用类似的东西 Sede一部分的燃烧器. 。该代码似乎源于 亚音速项目.
不隶属于 StackOverflow