Не могу загрузить продукт, который имеет подгруппу - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь показать одну группу по идентификатору, подгруппы с идентификатором группы в качестве родительского идентификатора и продукт с идентификатором группы или родительского идентификатора.

код услуги:

    public List<CompanyProductGroup> GetPorductGroupById(int id)
    {

        return _context.CompanyProductGroups
             .Where(c => c.CompanyProductGroupId == id && c.IsDelete != true || c.ParentId == id).ToList();
    }

Контроллер:

    [Route("group/{title}/{id}")]
    public IActionResult Group(string title, int id)
    {
        ViewBag.PageId = id;
        return View(_companyService.GetPorductGroupById(id));
    }

вид:

@foreach (var prod in Model.Where(p => p.ParentId == ViewBag.PageId)){
    <section style="height:150vh" class="has-shadow section2">
        <div class="white"></div>
        <div class="pgHeader">
            <div class="headwrap">
                <div class="right-side">
                    <p>
                        @prod.CompanyProductGroupDes
                    </p>
                </div>
                <div class="center-side">
                    <div class="center-side-inner"></div>
                </div>
                <div class="left-side">
                    <img src="~/CompanyProductGroup/image/@prod.CompanyProductGroupPic" alt="@prod.CompanyProductGroupTitle" />

                </div>

            </div>

        </div>
        <div class="clearfix"></div>

        <div class="wid-box">


            @if (prod.CompanyProduct != null)
            {
                @foreach (var gr in prod.CompanyProduct.Where(c => c.SubGroupId == prod.CompanyProductGroupId))
                {
                    <div class="wid-50">
                        <img src="~/Content/img/tires.png" />
                        <div class="wid-50-content">
                            <h2>Prod Title</h2>
                            <p>
                                لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافرا برای طراحان رایانهای .
                            </p>
                            <a href="#">بیشتر</a>
                        </div>
                    </div>
                }
            }
        </div>



    </section>

}

У меня есть ошибка на внутреннем foreach, которая показывает мне: ArgumentNullException: значение не может быть нулевым. Имя параметра: источник System.Linq.Enumerable.Where (источник IEnumerable, предикат Func)

Но у меня есть данные в моей таблице. Пожалуйста, помогите мне решить эту проблему. Заранее спасибо

1 Ответ

0 голосов
/ 06 июня 2019

Непонятно, как соотносятся ваши модели, но если вы хотите загрузить связанные данные, вы можете использовать метод Include, чтобы указать связанные данные, которые будут включены в результаты запроса.Попробуйте модификацию, как показано ниже:

public List<CompanyProductGroup> GetPorductGroupById(int id)
{

    return _context.CompanyProductGroups.Include(c=>c.CompanyProduct)
         .Where(c => c.CompanyProductGroupId == id && c.IsDelete != true || c.ParentId == id).ToList();
}

Пожалуйста, обратитесь к официальной документации Загрузка связанных данных .

...