[OP]Destroy-man 160 Share Posted December 12, 2011 LINQ-ban hogyan tudok lekérdezni egy olyan táblát, ami egy gyerektáblával is rendelkezik? Azaz úgy szeretném lekérdezni az adott táblát, hogy írja hozzá a gyerekeit is. Ha ez egyáltalán megoldható. Vagy itt csináljak dupla lekérdezést, azaz kérdezzem le a szülõt, utána pedig az ID alapján a gyereket? Link to comment Share on other sites More sharing options...
arpsoft 12 Share Posted December 12, 2011 Ezt találtam, hátha segít. Link to comment Share on other sites More sharing options...
[OP]Destroy-man 160 Author Share Posted December 12, 2011 Köszi. Első ránézésre jónak tűnik. Este majd kipróbálom. Szerk.: Működik. Link to comment Share on other sites More sharing options...
[OP]Destroy-man 160 Author Share Posted December 20, 2011 Azt hogyan oldanátok meg LINQ-ban, hogyha van egy weblap, amin van 22 darab checkbox, és eszerint kellene elkészíteni a lekérdezést, a következõképpen: ha true az értéke a checkboxnak, akkor a hozzátartozó mezõt vegye fel a WHERE-hez, és ha már van benne tartalom, akkor vaggyal fûzze össze (||), de ha false értéken áll a chcekbox, akkor ne kerüljön bele a hozzátartozó mezõ. Egy bõvített keresõt szeretnék így készíteni, viszont ilyen szinten én semmit sem találtam hozzá. Megpróbáltam azt is, hogy csinálok egy stringet, amiben a megfelelõ feltételek alapján összefûzöm a feltételt, de a LINQ csak boolt fogad el, ami viszont nekem nem jó. Vagy ezt a problémát nem lehet megoldani LINQ-ban? Egy egyszerûsített példa a problémára: A weblapon a checkboxok állása: ck1 = true ck2 = false ck3 = true akkor a LINQ-ba ez kerüljön: where ck1 == true || ck3 == true Link to comment Share on other sites More sharing options...
arpsoft 12 Share Posted December 20, 2011 Ezt találtam. Link to comment Share on other sites More sharing options...
Pjotr 9 Share Posted December 20, 2011 PredicateBuilder-t kell használni. Link to comment Share on other sites More sharing options...
[OP]Destroy-man 160 Author Share Posted February 9, 2012 Sajnos csak most volt időm foglalkozni ezzel a témával. A PedicateBuilder jónak tűnik, de nekem valahogy nem úgy működik, ahogy kellene. :/ Az adatbázisom: A programkód: protected void Button1_Click(object sender, EventArgs e) { var predicate = PredicateBuilder.False<tabla>(); predicate = predicate.Or(p => p.bit1.Equals(true)); predicate = predicate.Or(p => p.bit2.Equals(false)); predicate = predicate.Or(p => p.bit3.Equals(false)); DataClassesDataContext db = new DataClassesDataContext(); var query = db.tablas.Where(predicate); GridView1.DataSource = query; GridView1.DataBind(); } Az eredmény: Ez meg nekem nem jó. Csak a true-kat kéne figyelmbe vennie, a false-okat kihagynia. Szerk.: Meg is van a megoldás! Megvizsgálom, hogy melyik true, és csak azt adom át a predicatenek, a false-okat nem. Link to comment Share on other sites More sharing options...
Pjotr 9 Share Posted February 9, 2012 var query = db.tablas.Where(predicate.Compile()); Link to comment Share on other sites More sharing options...
[OP]Destroy-man 160 Author Share Posted February 9, 2012 A Compile() nem sokat segít, de ez igen: if (bool1) predicate = predicate.Or(p => p.bit1.Equals(true)); if (bool2) predicate = predicate.Or(p => p.bit2.Equals(true)); if (bool3) predicate = predicate.Or(p => p.bit3.Equals(true)); Ahol a bool1-2-3 értékét a felhasználó kijelöli checkboxból. Így csak azokra keres, amit a felhasználó megjelölt. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now