Chcę przekazać dynamiczne wyrażenia lambda do poniższej funkcji, ale nie jestem pewien jak zdefiniować .Take() lub .OrderByDescending() na obiekcie wyrażenia. Jeśli chcę wywołać funkcję poniżej, a następnie chcę, aby móc to zrobić:Jak zdefiniować SELECT TOP przy użyciu LINQ z zapytaniem dynamicznym?
dbprovider.Query = (x => x.ConfigurationReference == "172.16.59.175")
.Take(100)
.OrderByDescending(x.Date)
FindEntities(db, dbprovider.Query)
Ale nie mogę (ta składnia jest nieprawidłowy). Jakieś pomysły?
public static List<T> FindEntities<T>(TrackingDataContext dataContext, System.Linq.Expressions.Expression<Func<T, bool>> find) where T : class
{
try
{
var val = dataContext.GetTable<T>().Where(find).ToList<T>();
return val;
}
catch (Exception ex)
{
throw ex;
}
}
Twój obsługi wyjątku osiąga niczego przydatne, btw, i nie robić złe rzeczy (to traci StackTrace); powinieneś usunąć 'try' /' catch' - co powoduje, że cała metoda 'FindEntities' wygląda całkiem niepotrzebnie –