sto usando SQL Server 2005, con una base di dati sensibili caso ..LINQ to Entities: utilizzando ToLower() sui campi NTEXT
In una funzione di ricerca, ho bisogno di creare un LINQ to Entities (L2E) interrogazione con un "dove" clausola che confrontare diverse stringhe con i dati nel database con queste regole:
- il confronto è un "Contiene" modalità, non rigoroso confronto: facile come Contiene della stringa() il metodo è consentito in L2E
- Il confronto deve essere senza distinzione tra maiuscole e minuscole: utilizzo ToLower() su entrambi gli elementi per eseguire un confronto insensibile.
Tutto questo compie davvero bene, ma mi sono imbattuto nel seguente eccezione: "tipo di dati argomento ntext è valido per l'argomento 1 della funzione inferiore" su uno dei miei campi.
Sembra che il campo sia un campo NText e non riesca a eseguire ToLower() su quello.
Cosa posso fare per essere in grado di eseguire una distinzione tra maiuscole e minuscole() su quel campo NText?
hum ... Credo che mi dici che l'uso di ToLower() è sbagliato, ma non ho altra soluzione come: - Cambiare le regole di confronto è troppo lavoro e del rischio solo per alcuni criteri di ricerca - Uguale & StartsWith vinto non è adatto alle esigenze qui Sto pensando di convertire il campo NText in NVarchar e limitare l'input dell'utente ... Le prestazioni non sono davvero importanti nel mio caso. –
Sto solo cercando di dirti quali sono le opzioni, non affermando che esiste un'opzione ideale per te .... –