Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
basta74
Člen
Avatar
basta74:29.5.2014 9:01

Zdravím, potřeboval bych vytáhnout z DB všechny uživatele začínající prvním písmenem bez rozlišení diakritiky. Čili s písmenem "S" všechny "Svačinové, Šťastné a Štěpánové". V klasickém SQL dotazu mi to nedělá problém ale v LINQu jsem na to nepřišel a ani google nechce poradit (spíš nevím jak se ptát).

 
Odpovědět
29.5.2014 9:01
Avatar
Luboš Běhounek Satik:29.5.2014 9:20

Ahoj, koukni na funkci
http://msdn.microsoft.com/…s131452.aspx
a její druhý parametr
http://msdn.microsoft.com/…parison.aspx

Editováno 29.5.2014 9:20
Nahoru Odpovědět
29.5.2014 9:20
https://www.facebook.com/peasantsandcastles/
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na basta74
Jan Vargovský:29.5.2014 21:47
kolekce.Where(s => s.Prijmeni.StartsWith("s", StringComparison.CurrentCultureIgnoreCase));
Editováno 29.5.2014 21:48
 
Nahoru Odpovědět
29.5.2014 21:47
Avatar
basta74
Člen
Avatar
basta74:29.5.2014 22:48

Díky oběma!

Už na základě prvního příspěvku jsem to zkoušel, ale napsalo mi to

An exception of type 'System.NotSup­portedExcepti­on' occurred in EntityFramework.dll but was not handled in user code

Additional information: LINQ to Entities does not recognize the method 'Boolean StartsWith(Sys­tem.String, System.StringCom­parison)' method, and this method cannot be translated into a store expression.

Musel jsem to vyřešit tím že, jsem obešel LINQ a dotazoval se přímo na DB.
Nicméně je to násilné obejítí a LINQ by byl lepší.

Editováno 29.5.2014 22:49
 
Nahoru Odpovědět
29.5.2014 22:48
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na basta74
Jan Vargovský:29.5.2014 22:54

Jo, ono jak se to transformuje do SQL, tak to neumí vše. Vím, že to jde nějak obejít, ale už si nepamatuju jak.

 
Nahoru Odpovědět
29.5.2014 22:54
Avatar
Milan Křepelka
Tvůrce
Avatar
Milan Křepelka:30.5.2014 0:15

Hledal bych cosi, kam můžeš loupnout komparátor a diakritiku vyřešit v něm nebo zkusit takovou věc na kterou si teďka nemůžu vzpomenout jak se dělá implementačne. Můžeš expression tree postavit sám. Jako když se dělají dynamicky skládaný WHERE a pak si udělat nějakou třídu, která ti ten expression tree postaví na základě kombinací prvního písmene a zbytku textu. Vlastně bys v SQL postavil několik málo LIKE za sebou.

 
Nahoru Odpovědět
30.5.2014 0:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.