Si está utilizando SQL Server como servidor, ¿no podría utilizar Soundex? No estoy seguro de lo que estás tratando de buscar. Supongo que está intentando crear SQL dinámico como entrada de búsqueda. Si no, creo que hay SoundEx para LINQ.
EDITAR: Estoy corregido, parece que hay algo de linq en materia de entidad sql que se puede hacer para SoundEx.
Sin embargo, MSDN tiene un ejemplo soundex, que para las pruebas simples que ejecuté esta mañana parece funcionar bien en cuanto a lo que probé. http://msdn.microsoft.com/en-us/library/bb669073.aspx
El cambio que hice fue lugar de .ToUpper (invariante) i utilizado .ToUpperInvariant() y en lugar de pasar (palabra cadena) i utiliza un método de extensión (esta palabra string)
Aquí es un ejemplo de lo que me encontré
List<string> animals = new List<string>();
animals.Add("dogs");
animals.Add("dog");
animals.Add("cat");
animals.Add("rabbits");
animals.Add("doggie");
string dog = "dog";
var data = from animal in animals
where animal.SoundEx() == dog.SoundEx()
select animal;
de datos: perros, perro, perrito
Ahora con el servidor SQL, utilizando el Contiene/FreeText/CONTAINSTABLE etc y el uso de SoundEx un catálogo (no estoy familiarizado con el NE wer versiones de SQL server - volviendo a la implementación SQLServer 2000 que utilicé), también podría clasificar sus resultados.
Además, si usted tiene la capacidad de utilizar el servidor SQL es posible que desee ver en esta opción: LINQ to SQL SOUNDEX - possible?
La preocupación con la solución Pluralización, debe ser capaz de utilizar .Net 4.
También está el algoritmo de distancia Levenshtein que puede ser útil.
Sergi - I hang my head in shame ...Volveré a revisar mis viejas preguntas y lo solucionaré. sch: No me preocupan demasiado las rarezas que el inglés permite ... Creo que atrapar a todos esos sería un proyecto. – SAL