Могу ли я использовать метод linq в пользу плитализации термина?
Вопрос
В .NET 3.5 Если я генерирую контекст данных LINQ в SQL, он делает замечательную магию для плюлалийных имен. В моем коде мне нужно плюрализировать некоторые термины. Могу ли я использовать любой метод linq, чтобы создать мои промышленники?
Решение
LINQ к SQL не подвергает свою логику плюрализации. Быстрая проверка с отражателем показывает, что он не использует ужасно сложный алгоритм, хотя:
Если он заканчивается «X», «CH», «SH» или «SS», затем добавьте «ES».
Если он заканчивается «Y», предшествующий согласным, удалите Y и добавьте «IES».
В противном случае добавьте 's'.
Если .NET 4 - вариант, то плюрализация EF гораздо более тщательна. На случай, если вам когда -нибудь понадобится плюрализовать «пневмонолтрамикроскопикликоволканокониоз».
Другие советы
Вам придется использовать отражатель для копания в сборки Visual Studio, которые выполняют генерацию кода для дизайнера Linq-To-SQL.
Также есть .NET-порт вскрытия, который делает ту же работу. Авторский блог сейчас, но он доступен в http://cid-net.googlecode.com/svn/trunk/src/cid.mvc/inflector.cs среди других.
(через Альтернативы Influctor.net)
LINQ в SQL использует довольно простую систему для плюрализации. Если вы собираетесь работать со сложными условиями, я рекомендую вам Используйте что -то вроде инфлятор, который является частью SEDE. Анкет Этот кусок кода, кажется, происходит от Дозвуковой проект.