Как сопоставить результат хранимой процедуры с другими таблицами, используя лямбда-код - PullRequest
0 голосов
/ 11 апреля 2020
public IEnumerable<KitchenAllModel> GetallKit()
{
         var result = db.tblKitchens.Where(x => x.IsDeleted == false && x.KitchenStatus == 1).Select(x => new KitchenAllModel
        {
            KitchenId = x.Id,
            KitchenName = x.KitchenName,
            KitchenType = x.KitchenType,
            Area = x.Area,
            Address1 = x.Address1,
            Address2 = x.Address2,
            //CId = x.CityId,
            Pincode = x.Pincode,
            Email = x.Email,
            Website = x.Website,
            Landline = x.Landline,
            Halal = x.Halal,
            Category = x.Category,
            Branches = x.Branches,
            AvgCost = x.AvgCost,
            Fssai = x.Fssai,
            FssaiPath = x.FssaiPath,
            RegisterStatus = x.RegisterStatus,
            Rating = x.Rating,
            Offer = x.Offer,
            KitchenStatus = x.KitchenStatus,
            Logo = x.tblKitchenMedias.Where(r => r.KitchenId == x.Id).Select(r => r).FirstOrDefault().Logo,
            Banner = x.tblKitchenMedias.Where(s => s.KitchenId == x.Id).Select(s => s).FirstOrDefault().Banner,
            KitchenEarning = db.tblOrders.Where(b => b.KId == x.Id && b.OrderStatus == 2).Sum(b => b.TotalAmount).ToString(),
            KDis= db.spGetDistanceData(12.4575,77.454).Select(g=>g).FirstOrDefault().distance,

            GetAllcontact = x.tblKitchenContacts.Where(y => y.KitchenId == x.Id).Select(y => new KitchenContactModel
            {
                KitchenId = y.KitchenId,
                KicthenOwner = y.KicthenOwner,
                LegalName = y.LegalName,
                ContactPerson = y.ContactPerson,
                Mobile = y.Mobile,
                Manager = y.Manager,
                ManagerMobile = y.ManagerMobile,
                OwnerMobile = y.OwnerMobile,
                Landline = y.Landline,
                StartTime = y.StartTime,
                EndTime = y.EndTime,
                DeliveryTime = y.DeliveryTime,
                Latitude = y.Latitude,
                Longitude = y.Longitude,
                MapString = y.MapString,
                ContactStatus = y.ContactStatus,
            }
              ).ToList(),
            GetAllCuisines = x.tblKitchenCuisines.Where(z => z.KitchenId == x.Id).Select(z => new KitchenCuisinesModel
            {
                KitchenId = z.KitchenId,
                CuisinesId = z.CuisinesId,
                Id = z.Id,
                CuisinesName = z.Cuisine.Name,

            }
              ).ToList(),
            GetAllRemittance = x.tblKitchenRemittances.Where(a => a.KitchenId == x.Id).Select(a => new KitchenRemittanceModel
            {
                KitchenId = a.KitchenId,
                LegalName = a.LegalName,
                BankName = a.BankName,
                AccountNo = a.AccountNo,
                IFSCCode = a.IFSCCode,

            }
              ).ToList(),
            //GetAllMedia =x.tblKitchenMedias.Where(b=>b.KitchenId==x.Id).Select(b=> new KitchenMediaModel
            //{
            //    KitchenId =b.KitchenId,
            //    Banner=b.Banner,
            //    Logo=b.Logo,
            //    Id =b.Id,

            //}
            //).ToList(),
        }).ToList();
        return result;
    }

Я не могу

LINQ to Entities не распознает метод 'System.Data.Entity.Core.Objects.ObjectResult 1[DataAccess.spGetDistanceData_Result] spGetDistanceData(System.Nullable 1 [System.Decimal], System .Nullable`1 [System.Decimal]) ', и этот метод не может быть преобразован в выражение хранилища.

Это хранимая процедура получения расстояния для каждой кухни

ALTER PROCEDURE spGetDistanceData 
    @StartLat decimal(12,9),
    @StartLong decimal(12,9)
AS
BEGIN
    SELECT 
        Latitude, Longitude, 
        SQRT(POWER(69.1 * (Latitude - @StartLat), 2) +
             POWER(69.1 * (@StartLong - Longitude) * COS(Latitude / 57.3), 2)) * 2.1  AS distance
    FROM 
        tblKitchenContact 
    ORDER BY
        distance ASC
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...