Доступ ко всем записям за пределами цикла Loop ASP.Net MVC 5 [dубликат]

На этот вопрос уже есть ответ: проверьте, содержит ли список из другого списка в EntityFramework 2 ответы

Я пытаюсь получить все записи в виде списка из For Loop. Внутри этого For Loop у меня есть запрос, который возвращает каждую запись каждый раз. Ниже мой код:

 IQueryable<MyClass> receive = null;
     for (int i = 0; i < selected_items.Count(); i++)
      {
        var idx = order_receive_id[selected_items[i]];
        receive = (from ors in db.item where ors.id == 
                   order_receive_idx 
                   select new MyClass()
                   {
                     quantity = ors.receive ?? 0,
                     total = ors.quantity * 250 ?? 0
                   });
      }

И затем ..

var com = new MyNewClass();
com.items_list = receive.ToList();

Но это показывает только последнюю запись. Я хочу, чтобы все записи из вышеперечисленного запрашивались вне цикла. Я не мог найти никакой помощи в соответствии с моей потребностью. Любая помощь будет высоко оценена.

0
задан 13 August 2018 в 14:24

2 ответа

Вы сохраняете перезапись получаемой переменной.

recieve.AddRange((from ors in db.item where ors.id == 
                   order_receive_idx 
                   select new MyClass()
                   {
                     quantity = ors.receive ?? 0,
                     total = ors.quantity * 250 ?? 0
                   }));

Также при необходимости вы можете упростить запрос с помощью linq.

1
ответ дан 15 August 2018 в 17:03
  • 1
    Не могли бы вы показать мне, как это сделать с помощью linq? – Azhar Hussain 13 August 2018 в 14:31

Вы можете попробовать Содержит в запросе Linq, например

(from p in GetProducts()
       where prodIDs.Contains(p.ProductID)
       select p).ToArray<Product>();
0
ответ дан 15 August 2018 в 17:03

Другие вопросы по тегам:

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