LINQ To SQL - Problema di sintassi con operatore Like (VB .net)

lunedì 03 agosto 2009 - 16.10

fausto1965 Profilo | Newbie

Salve!
avrei la necessità di impostare un filtro che estragga tutti i record di una tabella che in un determinato campo contengono il testo di una TextBox.
Io ho scritto il seguente codice ma non funziona:

.......

Dim filtro = From Comuni In db.ComuniNazionali _
Where Comuni.Citta Like “’%’” + Me.TextBox1.Text + “’%’”_
Select Comuni

Grazie anticipatamente!!!

freeteo Profilo | Guru

Ciao,
quando usi Linq non devi preoccuparti della sintassi sql, quindi tu dovresti scrivere:
from c in Comuni where c.Descrizione.Contains("...") select c
e basta, quindi di fatto mettere la stringa com'è ed usare il metodo "Contains" (oppure StartsWith o EndsWith se vuoi fare il controllo a destra o sinistra) della stringa, si arrangia il provider Linq per Sql a tradurlo con gli apici e il "%" correttamente...
Oppure se vuoi puoi anche usare
...where SqlMethods.Like(c. Descrizione, "...%")
ma secondo me è meno pulito del metodo "Contains" che poi è generico mentre qui già ti "tipizzi" verso Sql...

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5