左加入林克不在Nocommerce服务工作

本文关键字:Nocommerce 服务工作 林克 | 更新日期: 2023-09-27 18:24:31

我使用的是nocommerce 3.4,其中我必须显示所有供应商列表,并在此基础上显示它们的重新存储位置,因此要从左表(vendor)操作的两个表我需要所有记录,从右表(Resturant)我只需要匹配的记录。如果记录不匹配,则显示0。

因此我创建了GetAllList()的服务

 public virtual IPagedList<ResturantCoordinatesModel> GetAllList(int pageIndex = 0, int pageSize = int.MaxValue)
        {
            var Resturant = (from r in _resturantCoordinates.Table
                             select r).ToList().AsEnumerable();
            var vendor = _vendorService.GetAllVendors().ToList();
            IList<ResturantCoordinatesModel> model = new List<ResturantCoordinatesModel>();
                           var query = from v in vendor
                            join r in Resturant on v.Id equals r.VendorId into gj
                            from rt in gj.DefaultIfEmpty()
                            orderby rt.Id
                            select new { rt.Id, v.Name, Latitude = (double?)rt.Latitude, Longitude = (double?)rt.Longitude };
}

但在中,var query不返回任何结果。它返回未设置为对象实例的对象引用错误。请建议

左加入林克不在Nocommerce服务工作

以获得正确的结果

尝试由Linq 使用

foreach(var v in vendor)
            {
                var s = new ResturantCoordinatesModel();
                var values = new NopDestek.StoreMapFinder.Domain.Resturant_Coordinates();
                   values = (from t in _resturantCoordinates.Table
                                  where t.VendorId == v.Id
                                  select t).FirstOrDefault();
                s.Id = v.Id;
                s.Name = v.Name;
                s.Latitude = values == null? 0 : values.Latitude;
                s.Longitude = values == null ? 0 : values.Longitude;
                model.Add(s);
            }

希望这有帮助,

谨致问候,Vinit