выберите различные значения в столбце, передав столбец для динамической фильтрации в объектной структуре - PullRequest
0 голосов
/ 25 апреля 2018

выберите отличное описание от Sometable, где условие = 2000

Я пытался добиться этого с помощью отражения, но получил ошибку

500 Internal Server Error","error":"{\"message\":\"An error has occurred.\",\"exceptionMessage\":\"LINQ to Entities does not recognize the method 'System.Reflection.PropertyInfo[] GetProperties()' method, and this method cannot be translated into a store expression.

Метод, который я написал с запросом linq

   public IList<Material> GetDisctinctColumnValues(string parameter)
           {
                using (var db = this.dbFactory.CreateDbContext())
                {

                    var columns= db.Table.GroupBy(m => ((IQueryable)m).ElementType.GetProperties().Where(p => p.Name == parameter))
                                  .Select(c => c.FirstOrDefault()).ToList();
                    return columns;
                }
            }

Мне нужно написать запрос linq на основе параметра, который передается из метода. Допустим, столбец передается как параметр, здесь это «Описание».

1 Ответ

0 голосов
/ 25 апреля 2018
var res = Table
  .Where(r => r.discreption==2000 })
  .GroupBy(x => x.SomeProperty)
  .Select(x => x.First());

OR

  var res = Table
      .Where(r => r.discreption==2000 })
      .Distinct().ToList();

Если вы хотите select только Описание:

var res = Table.Select(z=>z.description)
  .Where(r => r.description==2000 })
  .GroupBy(x => x.SomeProperty)
  .Select(x => x.First());

OR

  var res = Table.Select(z=>z.description)
      .Where(r => r.description==2000 })
      .Distinct().ToList();
...