Как вернуть данные в моем приложении MVC на основе идентификаторов, переданных с использованием массива в сетку Kendo?

Если вы используете Mozilla Firefox, он будет работать как ожидалось без каких-либо проблем;

P.S. Даже IE_Edge работает отлично, удивительно !!

0
задан Yanayaya 13 July 2018 в 15:26
поделиться

1 ответ

Проблема с вашим кодом:

var car = unitOfWork.CarRepository.Get().Where(u => array.Any(x => x == u.Id));

Вы запрашиваете список (unitOfWork.CarRepository.Get()), который всегда будет содержать счет 0, поскольку аргументы не были переданы), поэтому он никогда не будет дайте результат.

Я также не уверен, какое выражение следует передать, но есть обходное решение. Вероятно, кто-то предоставит вам лучший ответ, но до тех пор, пока вы не сможете его использовать.

В вашем репозитории должен быть метод для извлечения одной записи say FindSingleOrDefault(). Если FindSingleOrDefault() не существует, вы можете вставить этот код

public TEntity FindSingleOrDefault(Expression<Func<TEntity, bool>> predicate)
        {
            return _context.Set<TEntity>().SingleOrDefault(predicate);
        }

, чтобы вы могли его использовать.

List<Car> cars=new List<Car>();
foreach(var id in array)
{
  cars.Add(unitOfWork.CarRepository.FindSingleOrDefault(x=>x.id==id));
}

Cars будет содержать все записи автомобиля с соответствующими id.

Если это не был шаблон репозитория, тогда простой запрос linq был бы похож на

var cars = (from id in array
            join car in dbSet.Cars
            on id equals car.id
            select car).ToList();

. Дайте мне знать, если вы сталкиваетесь с проблемой применения этого ответа.

0
ответ дан Sumit raj 17 August 2018 в 12:35
поделиться
  • 1
    Благодарим вас за этот anwer, я получил его для работы, интегрируя его с моим репозиторием, как вы описали в первом случае. – Yanayaya 16 July 2018 в 12:50
Другие вопросы по тегам:

Похожие вопросы: