NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: EntityFramework třídění z pole

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Majkel
Člen
Avatar
Majkel:1.6.2015 11:46

Ahoj, je možné použít pro výběr dat z databáze za použití EntityFrameworku, pole dat?

Konfigurační soubor:

<add key="Vlastnosti" value="maly, placaty, stredni" />

Kód:

// Nejprve si načtu string z configu a vytvořím nové pole

string vlastnosti = ConfigurationManager.AppSettings["Vlastnosti"];
string[] vlastnostiPole = vlastnosti.Split(',');

DatabaseContext db = new DatabaseContext();

var dbSelect = from s in db.Description
               select s;

dbSelect = // A tady nevím, jak dál.
 
Odpovědět
1.6.2015 11:46
Avatar
Odpovídá na Majkel
Ľubomír Prokopovič:12.6.2015 22:24

Skus pouzit List s tym sa lepsie pracuje

Editováno 12.6.2015 22:25
Nahoru Odpovědět
12.6.2015 22:24
"Počítače jsou jako Bůh ve Starém zákoně - hodně příkazů a žádné slitování." Joseph Campbell
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Majkel
Jan Vargovský:12.6.2015 22:30

Můžeš upřesnit o co se snažíš?

 
Nahoru Odpovědět
12.6.2015 22:30
Avatar
Majkel
Člen
Avatar
Odpovídá na Jan Vargovský
Majkel:14.6.2015 12:14

Mám instanci nějaké databáze:

DatabaseContext db = new DatabaseContext();

Teď budu chtít udělat třeba takovýto výběr:

var dbSelect = from s in db.Description
               select s;

dbSelect = dbSelect.Where(o => o.Sloupec.Contains("maly") || o.Sloupec.Contains("placaty") || o.Sloupec.Contains("stredni");

Takže vyberu hodnoty, které obsahují řetězce "maly" nebo "placaty" nebo "stredni". Takto se ale předpokládá, že vím, jaký počet řetězců mám na výběr. V případě, že dám uživateli možnost si řetězce zadat, jakým způsobem pak mám sestavit dotaz na databázi, když nemůžu použít zápis jako jsem uvedl výše a nevím, kolik řetězců uživatel zadá?

Editováno 14.6.2015 12:15
 
Nahoru Odpovědět
14.6.2015 12:14
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Majkel
Jan Vargovský:14.6.2015 12:40
dbSelect.Where(o => new string[] {"maly", "velky", "stredni"}.Any(s => o.Sloupec.Contains(s));

Jestli to budeš nějak používat na více místech, asi bych si k tomu dopsal extension metodu na ContainsAny nebo tak něco :)

Editováno 14.6.2015 12:40
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
14.6.2015 12:40
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 5 zpráv z 5.