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!
Avatar
beats.omni
Člen
Avatar
beats.omni:25.5.2015 16:05

U entity frameworku se k jednotlivým elementům přistupuje přes tečkovou notaci.

ef = ef.Where(o => o.Jmeno.StartsWith("a"));

Zajímalo by mě, jestli se dá název elemntu dodat i z proměnné, například takhle

var pom = "Jmeno";
ef = ef.Where(o => o.pom.StartsWith("a"));
Editováno 25.5.2015 16:06
 
Odpovědět
25.5.2015 16:05
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na beats.omni
Jan Vargovský:25.5.2015 16:43

Ano dá, ale né tak jak ty ukazuješ.

 
Nahoru Odpovědět
25.5.2015 16:43
Avatar
beats.omni
Člen
Avatar
Odpovídá na Jan Vargovský
beats.omni:1.6.2015 18:15

A jak by to tedy šlo vyřešit?

 
Nahoru Odpovědět
1.6.2015 18:15
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na beats.omni
Jan Vargovský:1.6.2015 18:18

Skrz reflexi.

 
Nahoru Odpovědět
1.6.2015 18:18
Avatar
beats.omni
Člen
Avatar
Odpovídá na Jan Vargovský
beats.omni:2.6.2015 18:26

Prošel jsem pár návodů, ale moc jsem z toho nepochopil. Nebyl by odkaz na něco polopatického (ve stylu zdejších tutoriálů)? Díky.

 
Nahoru Odpovědět
2.6.2015 18:26
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na beats.omni
Jan Vargovský:2.6.2015 18:35

Mějme takový model:

class Subject
{
    public string Name { get; set; }
    public int Credits { get; set; }
    public int Points { get; set; }
}

Pak vyhledání skrz propertu Name by mohlo vypadat takhle:

subjects.Find(s => (string)s.GetType().GetProperty("Name").GetValue(s) == "MAIT");

Kdybys to používal více, tak bych si asi napsal extension metodu. Třeba takhle:

public static class Extensions
{
    public static V GetProperty<V>(this object o, string propertyName)
    {
        return (V)o.GetType().GetProperty(propertyName).GetValue(o);
    }
}

A pak volání máš jednodušší:

subjects.Find(s => s.GetProperty<string>("Name") == "MAIT");
Editováno 2.6.2015 18:36
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
2.6.2015 18:35
Avatar
Odpovídá na beats.omni
sadlomaslox25:2.6.2015 20:43

radsi nez pouzit to co psal pako bych popsal ceho chces dosahnout. to co popisujes ze bys chtel se normalne nedela takze to nejspis chces neco ohnout pres koleno takze mas spatny navh, coz se ti muze vymstit v budoucnosti.

 
Nahoru Odpovědět
2.6.2015 20:43
Avatar
beats.omni
Člen
Avatar
Odpovídá na sadlomaslox25
beats.omni:3.6.2015 7:43

Ahoj, já to momentálně nepotřebuju pro nic konkrétního. Spíše mě zajímalo, jak to funguje a jak se to řeší, kdybych to někdy nepotřeboval.

 
Nahoru Odpovědět
3.6.2015 7:43
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 8 zpráv z 8.