sql-server - query - linq to sql online



Ignorar acentos en SQL Server usando LINQ to SQL (3)

¿Cómo puedo ignorar los acentos (como ', `, ~) en consultas hechas a una base de datos de SQL Server usando LINQ to SQL?

ACTUALIZAR:

Todavía no he descubierto cómo hacerlo en LINQ (o incluso si es posible), pero logré cambiar la base de datos para resolver este problema. Solo tuve que cambiar la intercalación en los campos en los que quería buscar. La colación que tuve fue:

SQL_Latin1_General_CP1_CI_AS

El CI indica "Insensible a mayúsculas / minúsculas" y AS para "Sensible acentuadas". Solo tuve que cambiar el AS a AI para hacerlo "Acento insensible". La declaración de SQL es esta:

ALTER TABLE table_name ALTER COLUMN column_name column_type COLLATE collation_type

https://ffff65535.com


En las consultas SQL (Sql Server 2000+, como recuerdo), puede hacer esto seleccionando MyString, MyId desde MyTable donde MyString clasifica Latin1_General_CI_AI = 'aaaa'.

No estoy seguro de si esto es posible en Linq, pero alguien más acogedor con Linq probablemente pueda traducirlo.

Si está de acuerdo con la clasificación y seleccione / donde las consultas SIEMPRE ignoran los acentos, puede modificar la tabla para especificar la misma intercalación en el (los) campo (s) que le interesan.


LINQ to SQL no tiene ninguna funcionalidad específica para establecer la intercalación utilizada para una consulta, por lo que siempre utilizará la base de datos predeterminada.


Vea la siguiente respuesta:

LINQ donde se ignora la acentuación y el caso

Básicamente, debe modificar el tipo de campo en SQL Server, por ejemplo

ALTER TABLE People ALTER COLUMN Name [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AI

No parece haber una manera de hacerlo con LINQ, además de llamar a un método personalizado para eliminar los signos diacríticos (que no serían efectivos).





linq-to-sql