avatar
navid ghavami

کاربر

  • 1400/08/19
  • 0
  • 148
1400/08/19 |
backend

نمایش تعداد فرزند های دسته بندی

با سلام. بنده از طریق automapper دسته بندی کالا ها را انجام داده ام. ولی نمایش زیر دسته های آن ها را null بر می گرداند. در حالی که در دیتابیس parent  آنها مشخص شده است. 

ممنون میش راهنمایی بفرمایید

 

شناسه تعداد فرزند
لوازم دیجتال 0
لوازم خانگی 0

 


سلام

لطفا سورس کد رو هم قرار دهید


  • 1400/08/21

public PaginatedItemsDto<CatalogTypeListDto> GetList(int? parentId, int page, int pageSize)
        {
            int totalCount = 0;
            var model = _context.CatalogTypes
                .Where(x => x.ParentCatalogTypeId == parentId)
                .PagedResult(page, pageSize, out totalCount);


            var result = _mapper.ProjectTo<CatalogTypeListDto>(model).ToList();


            var showList = new PaginatedItemsDto<CatalogTypeListDto>(page, pageSize, totalCount, result);

            return showList;
        }

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 public CatalogMappingProfile()
        {
            CreateMap<CatalogType, CatalogTypeDto>().ReverseMap();

            CreateMap<CatalogType, CatalogTypeListDto>()
                .ForMember(dest => dest.SubTypeCount, option =>
                    option.MapFrom(src => src.SubType.Count));

            CreateMap<CatalogType, MenuItemDto>()
                .ForMember(dest => dest.Name, opt =>
                    opt.MapFrom(src => src.Type))
                .ForMember(dest => dest.ParentId, opt =>
                    opt.MapFrom(src => src.ParentCatalogTypeId))
                .ForMember(dest => dest.SubMenu, opt =>
                    opt.MapFrom(src => src.SubType));

        }

/////////////////////////////////////////////////////////////////////////////////////////////////////////

<tbody>
                                        @foreach (var item in Model.CatalogType.Data)
                                        {
                                            <tr role="row">
                                                <td class="sorting_1"> @item.Id</td>
                                                <td>  @item.Type </td>
                                                <td> @item.SubTypeCount </td>

                                                <td>
                                                    <div class="btn-group">
                                                        <button type="button" class="btn btn-dark btn-sm">انتخاب گزینه</button>
                                                        <button type="button" class="btn btn-dark btn-sm dropdown-toggle dropdown-toggle-split" id="dropdownMenuReference25" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-reference="parent">
                                                            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>
                                                        </button>
                                                        <div class="dropdown-menu" aria-labelledby="dropdownMenuReference25">
                                                            <a class="dropdown-item" asp-page="Edit" asp-route-id="@item.Id">ویرایش</a>
                                                            <a class="dropdown-item" asp-page="Delete" asp-route-id="@item.Id">حذف</a>
                                                            <a class="dropdown-item" asp-page="Create" asp-route-parentId="@item.Id">افزودن زیردسته بندی</a>
                                                            <div class="dropdown-divider"></div>
                                                            <a class="dropdown-item" asp-page="index" asp-route-parentid="@item.Id">لیست زیر دسته بندی ها</a>
                                                        </div>
                                                    </div>
                                                </td>
                                            </tr>
                                        }

                                    </tbody>


sub category ها را هم include کنید در query


  • 1400/08/21

کوئری را به این صورت تغییر دادم ولی همچنان برای فرزند ها null  را برمیگرداند و مقدار صفر می باشد.

 public PaginatedItemsDto<CatalogTypeListDto> GetList(int? parentId, int page, int pageSize)
        {
            int totalCount = 0;
            var model = _context.CatalogTypes
                .Include(x=>x.SubType)
                .Where(x => x.ParentCatalogTypeId == parentId)
                .PagedResult(page, pageSize, out totalCount);


            var result = _mapper.ProjectTo<CatalogTypeListDto>(model).ToList();
            return new PaginatedItemsDto<CatalogTypeListDto>(page, pageSize, totalCount, result);

        }


  • 1400/08/22

بدون استفاده از mapper  هم امتحان کردم و با روش  select  کردن عادی انجام دادم ولی کماکان subtype.count صفر را بر می گرداند.

 

var totalCount = 0;

            var model = _context.CatalogTypes
                .Where(x => x.ParentCatalogTypeId == parentId)
                .Include(x => x.SubType)
                .PagedResult(page, pageSize, out totalCount);

            var result = model.Select(x => new CatalogTypeListDto
            {
                Id = x.Id,
                Type = x.Type,
                SubTypeCount = x.SubType.Count
            }).ToList();

            return new PaginatedItemsDto<CatalogTypeListDto>(page, pageSize, totalCount, result);


سلام

میشه لطفا اطلاعات از دیتابیس قرار بدید ؟

یک select از جدول اصلی و یکی از زیر مجموعه قرار بدید فکر کنم اشکال شما از ParentCatalogTypeId باشه

 


  • 1400/08/22

موجودیت کاتالوگ تایپ: 

using System.Collections.Generic;
using Domain.Attributes;

namespace Domain.Catalogs
{

    [Auditable]
    public class CatalogType
    {
        public long Id { get; set; }
        public string Type { get; set; }
        public int? ParentCatalogTypeId { get; set; }
        public CatalogType ParentCatalogType { get; set; }
        public ICollection<CatalogType> SubType { get; set; }
    }
}
 

select  از فیلد پدر و فیلد فرزند نیز قرار دادم ولی صفر برمی گرداند

 

var totalCount = 0;

            var model = _context.CatalogTypes
                .Include(x=> x.ParentCatalogType)
                .Include(x => x.SubType)
                .Where(x => x.ParentCatalogTypeId == parentId)
                .PagedResult(page, pageSize, out totalCount);

 

در خود ویدیو آموزشی از include  هم استفاده نشده است ولی به درستی نشان داده می شود


  • 1400/08/22

 

parentCatalogId               updateTime                   RemoveTim                    isRemove                   insertTime                                  Type                 Id

1

لوازم دیجیتال

2021-11-09 23:43:14.9989452

False

NULL

2021-11-10 01:41:04.8526086

NULL

2

لپتاپ

2021-11-09 23:43:14.9989452

False

NULL

2021-11-10 11:48:22.9889088

1

3

Asus

2021-11-09 23:43:14.9989452

False

NULL

2021-11-10 11:48:45.5660953

2

4

Dell

2021-11-09 23:43:14.9989452

False

NULL

2021-11-10 11:49:04.7698669

2

5

Acer

2021-11-09 23:43:14.9989452

False

NULL

2021-11-10 11:49:21.1638792

2

8

لوازم خانگی

2021-11-10 01:22:54.3868943

False

2021-11-10 01:52:03.4247604

NULL

NULL

9

صوتی و تصویری

2021-11-10 01:24:04.8566208

False

NULL

NULL

8

10

تلویزیون

2021-11-10 01:24:35.6935983

False

NULL

NULL

9

11

سامسونگ

2021-11-10 01:24:57.5369863

False

NULL

NULL

10

12

Asus Rog Zypherus 10750

2021-11-10 11:49:55.8232984

False

NULL

NULL

3

13

فرش و مبل

2021-11-10 13:31:50.9302985

False

NULL

NULL

NULL

14

فرش دستباف

2021-11-10 13:32:08.1595003

False

NULL

NULL

13

15

مبل راحتی

2021-11-10 13:32:20.4941006

False

NULL

NULL

13

NULL

NULL

NULL

NULL

NULL

NULL

NULL

 



پاسخی برای این باگ ارسال کنید

لطفا کدها را درون قطعه کد ارسال نمایید

برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری