Domanda

Se fai qualcosa del genere nel tuo repository:

IQueryable<CarClass> GetCars(string condition, params object[] values) {
    return db.Cars.Where(condition, values);
}

E si imposta la condizione e i valori al di fuori del repository:

string condition = "CarMake == @Make";
object[] values = new string[] { Make = "Ford" };

var result = myRepo.GetCars( condition, values);

Come saresti in grado di ordinare il risultato al di fuori del repository con query dinamica?

return View( "myView", result.OrderBy("Price"));

In qualche modo sto perdendo la natura DynamicQuery quando i dati escono dal repository. E sì, non ho capito come restituire il tipo di carclass in cui normalmente faresti una nuova carclass selezionata {fieldname = m.fieldName, ...}

È stato utile?

Soluzione

La query dinamica richiede:

  • la fonte è IQueryable<T> (Quindi se lo è IEnumerable<T> o simile, basta chiamare .AsQueryable() su di esso)
  • una DLL extra da fare riferimento nel codice che desidera eseguire una query dinamica
  • l'appropriato using Direttive per essere in atto nella parte superiore del file di origine locale

Controlla quei tre e dovresti essere in grado di aggiungere .Where(condition), .OrderBy(name), eccetera

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top