MVC l oop через массив, чтобы найти данные каждого местоположения в таблице и создать отдельную таблицу для каждого - PullRequest
0 голосов
/ 10 марта 2020

Я хочу иметь возможность l oop через мою таблицу "Сайты" sql, чтобы найти все цены элементов в таблице, если элементы не равны нулю для каждого местоположения "сайта"

Вот мой текущий метод контроллера

float[] osiItemCost;
float[] osiLoItemCost;
float[] osiItemLastCost;

List<Site> sites = db.Sites.ToList();
            foreach (Site s in sites)
            {
                foreach (OffSiteItemDetails d in s.ItemDetails)
                {

                    if (d.itemID != null)
                    {
                        osiItemCost[s.ID] = d.qty * db.Items.Where(x => x.ID == d.itemID).FirstOrDefault().cost(1, false, false);
                        osiLoItemCost[s.ID] += d.qty * db.Items.Where(x => x.ID == d.itemID).FirstOrDefault().cost(1, false, true);
                        osiItemLastCost[s.ID] += db.Items.Where(x => x.ID == d.itemID).FirstOrDefault().cost(d.qty, true, false);

                    }
                 }
             }

Я хочу, чтобы он прошел через l oop и захватил данные для каждого сайта, а затем назначил его соответствующему местоположению переменной сайта. например: osiItemCost[s.ID] Но я не знаю, нахожусь ли я на правильном пути.

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

1 Ответ

0 голосов
/ 10 марта 2020

Попробуйте создать модель, представляющую нужные вам данные в таблице, например:

public class AppropriateSiteData{
    public int Id {get;set;}
    public int SiteId {get;set;}
    public float ItemCost {get;set}
    public float LoItemCost {get;set;}
    public float ItemCostLast {get;set;}    
}

, а затем создайте список модели и добавьте его в список при циклическом просмотре данных:

List<AppropriateSiteData> siteDataList = new List<AppropriateSiteData>();
List<Site> sites = db.Sites.ToList();

        foreach (Site s in sites)
        {
            foreach (OffSiteItemDetails d in s.ItemDetails)
            {

                if (d.itemID != null)
                {
                   AppropriateSiteData toAdd = new AppropriateSiteData{
                           SiteId = s.Id,
                           ItemCost = d.qty * db.Items.Where(x => x.ID == 
                                      d.itemID).FirstOrDefault().cost(1, false, false),
                           LoItemCost = d.qty * db.Items.Where(x => x.ID == 
                                       d.itemID).FirstOrDefault().cost(1, false, true),
                           ItemCostLast =db.Items.Where(x => x.ID == 
                           d.itemID).FirstOrDefault().cost(d.qty, true, false)
                      };
                   siteDataList.Add(toAdd); 

                }
             }
         }

Тогда siteDataList будет содержать список данных, которые вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...