Where указать поля и значения, то как мне это сделать в ORM?
в какой орм
не знаю, пусть сам расскажет с чем ковыряется
Через рефлексию и Expression
так в Entity Framework например linq само генерит sql запрос
как вообще понять эти экспрешены
как-то жёстко, через рефлексию
Та я там вроде ordering делал по кастомному свойству
только тут много факторов, всё зависиот того, как правильно ты его сделаешь, и в результате чего он будет работать либо на стороне клиента, либо сервера
public static class SortingExtensions { public static IQueryable<T> SortBy<T, TKey>(this IQueryable<T> query, ISortable sort, Expression<Func<T, TKey>> defaultOrdering) { var type = typeof(T); var properties = type.GetProperties(); if (sort == null || !properties.Any(x => x.Name.Equals(sort.PropertyName, StringComparison.OrdinalIgnoreCase))) { return query.OrderBy(defaultOrdering); } if (sort.Order == "desc") { return query.OrderByDescending(sort.PropertyName); } return query.OrderBy(sort.PropertyName); } public static IOrderedQueryable<T> OrderBy<T>(this IQueryable<T> source, string propertyName) { return source.OrderBy(ToLambda<T>(propertyName)); } public static IOrderedQueryable<T> OrderByDescending<T>(this IQueryable<T> source, string propertyName) { return source.OrderByDescending(ToLambda<T>(propertyName)); } private static Expression<Func<T, object>> ToLambda<T>(string propertyName) { var parameter = Expression.Parameter(typeof(T)); var property = Expression.Property(parameter, propertyName); var propAsObject = Expression.Convert(property, typeof(object)); return Expression.Lambda<Func<T, object>>(propAsObject, parameter); } } вот, что-то такое было
выглядит проще чем звучит
всмысле не работает
пардон, уточняю, не работает на стороне сервера, т.е. по сути в некоторых ситуация можно сказать что не работает
схуя ли
а вот так, тянет таблицу с одним лишь условием фильтра по внешнему ключу
причем здесь вобще внешний ключ
я ситуацию описываю
Обсуждают сегодня