Dynamisch queries genereren

Status
Niet open voor verdere reacties.

Speedy7912

Gebruiker
Lid geworden
4 dec 2009
Berichten
65
ik zit met hetvolgende. ik ben bezig een zoekvenster te maken welke resultaten terug uit een sql database moet halen. Ik heb hier een Aantal verschillende cirteria welke ingevult kunnen worden middels een textbox/combobox/datetimepicker etc. Uiteindelijk zou hier een LINQ query uit moeten komen die voldoet aan de ingevulde criteria. Is het mogelijk afhankelijk van de ingevulde waarden dynamisch een query te genereren of is er mogelijk een betere manier. Indien ik terug moet vallen op directie SQL queries is tevens de vraag of deze direct gecombineerd zouden kunnen worden in de datacontext welke ik heb gemaakt t.b.v. mijn LINQ queries. Voor ierder mogelijke situatie een query schijven is ondoenlijk. in het geval van 3 velden zou ik al 8 queries moeten maken en je raad het al....het gaat om veel meer invul velden.

gr.
 
btw speedy: als je met NHibernate zou werken :



Code:
ISession sess = null;
List<TEntity> entList = new List<TEntity>();
ICriteria crit = null;
sess = SessionManager.Instance.GetSession();
crit = sess.CreateCriteria(typeof(TEntity));

// één van de volgende: (cond is een custom Condition class)
crit.Add(Expression.Eq("PropertyName", "PropertyValue")); // Equals
crit.Add(Expression.Like(Projections.Property(cond.PropertyName), cond.PropertyValue)); // Like
 crit.Add(Expression.IsNull(cond.PropertyName)); // is null
 crit.Add(Expression.Ge(Projections.Property(cond.PropertyName), cond.PropertyValue)); // Greater than or equal
// ...
IList<ObjectType> list = crit.List<ObjectType>().ToList();
 
Santo2,

ik heb inmiddels inderdaad ook dezelfde site gevonden betreffende Dynamic LINQ. Echter zie ik hier geen mogelijkheden tot een wildcard of een like statement. bijv. als ik een deel van een zoekterm ingeef vind de query NIETS. Ik moet de complete inhoud zoeken.

bv. indien ik een veld met waarde "Santo2" heb en ik vul in mijn zoekveld alleen "Sant" zal hij niets vinden.

Tevens moet ik een dynamic library toevoegen aan mijn project welke als sample uitgegeven wordt door microsoft. Kortom lijkt me dit inderdaad geen ideale oplossing.

kun jij me wellicht vertellen dat dit ofwel met LINQ wel kan of moet ik dan inderdaag naar NHibernate. Indien dit laatste geval is heb jij dan een goede referentie voor me waar ik me kan inlezen in deze techniek.

Alvast mijn hartelijke dank.

Gr.
 
Probleem is bij deze omzeilt door over te stappen op de lower-level variant (ADO.NET)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan