Могу ли я использовать метод множественного числа от linq? - PullRequest
3 голосов
/ 17 августа 2010

В .net 3.5, если я создаю контекст данных linq to sql, это делает чудо для множественного числа имен.В моем коде мне нужно использовать несколько терминов.Могу ли я использовать любой метод, который использует Linq для генерации множественного числа?

Ответы [ 4 ]

2 голосов
/ 17 августа 2010

LINQ to SQL не раскрывает логику плюрализации.Быстрая проверка с помощью Reflector показывает, что он не использует ужасно сложный алгоритм:

Если он заканчивается на 'x', 'ch', 'sh' или 'ss', то добавьте 'es'.
Если оно заканчивается на 'y', перед которым стоит согласная, удалите y и добавьте 'ies'.
В противном случае добавьте 's'.

Если .NET 4 являетсявариант, то PluralizationService EF гораздо более тщательно.На тот случай, если вам когда-либо понадобится множественное число «пневмоноултрамикроскопический кремниевый канокониоз».

2 голосов
/ 17 августа 2010

Существует также порт .NET Inflector, который выполняет ту же работу.Блог автора сейчас недоступен, но он доступен по адресу http://cid -net.googlecode.com / svn / trunk / src / Cid.Mvc / Inflector.cs и других.

(через Альтернативы Inflector.Net )

2 голосов
/ 17 августа 2010

Вы должны использовать рефлектор, чтобы копаться в сборках Visual Studio, которые выполняют генерацию кода для дизайнера linq-to-sql.

0 голосов
/ 17 августа 2010

LINQ to SQL использует довольно простую систему для множественного числа. Если вы собираетесь работать со сложными терминами, я рекомендую вам использовать что-то вроде Инфлектор, который является частью SEDE . Этот фрагмент кода, кажется, происходит из проекта SubSonic .

...