Diskuze: LINQ dotaz dle prvního písmene
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, koukni na funkci
http://msdn.microsoft.com/…s131452.aspx
a její druhý parametr
http://msdn.microsoft.com/…parison.aspx
kolekce.Where(s => s.Prijmeni.StartsWith("s", StringComparison.CurrentCultureIgnoreCase));
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.NotSupportedException' occurred in EntityFramework.dll but was not handled in user code
Additional information: LINQ to Entities does not recognize the method 'Boolean StartsWith(System.String, System.StringComparison)' 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ší.
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.
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.
Zobrazeno 6 zpráv z 6.