C# NHibernate LINQ加入2个查询以检索最近4家供应商的库存

C# NHibernate LINQ加入2个查询以检索最近4家供应商的库存,c#,linq,nhibernate,linq-to-sql,C#,Linq,Nhibernate,Linq To Sql,我必须检索库存和最近的4个供应商。我有一张单子上的存货。已与其他列表中的供应商获取采购订单。希望获得所有库存与其最近4家供应商在采购中的合并结果(如果有)。我和林克相处得不好,这也是恩希伯内特 这是我最新的作品。正在寻找如何编写第三个LINQSQL来实现这一点 IEnumerable<StockDetailReportModal> stockDetail = Session.Query<Stock>() .Where(predicat

我必须检索库存和最近的4个供应商。我有一张单子上的存货。已与其他列表中的供应商获取采购订单。希望获得所有库存与其最近4家供应商在采购中的合并结果(如果有)。我和林克相处得不好,这也是恩希伯内特

这是我最新的作品。正在寻找如何编写第三个LINQSQL来实现这一点

       IEnumerable<StockDetailReportModal> stockDetail = Session.Query<Stock>()
            .Where(predicate)
            .ToList()
            .Select(n => new StockDetailReportModal
            {
                Id = n.Id,
                Number = n.Number,
                PaddedNumber = n.PaddedNumber,
                Buyer = n.Buyer == null ? string.Empty : n.Buyer.FullName,
                SalesTaxCode = n.SalesTaxCode == null ? null : n.SalesTaxCode.Code,
                PurchasingUnitOfMeasure = n.PurchasingUnitOfMeasure,
                InventoryUnitOfMeasure = n.InventoryUnitOfMeasure,
                CatalogueDescription = n.CatalogueDescription,
                BrandDescription = n.BrandDescription,
                EconomicOrderQuantity = n.EconomicOrderQuantity,
                LastYearPurchasePrice = n.LastYearPurchasePrice,
                ThisYearIssuePrice = n.ThisYearIssuePrice,
                NextYearIssuePrice = n.NextYearIssuePrice,
                Description = n.StockCommodityCode == null ? string.Empty : n.StockCommodityCode.Code + "-" + n.StockCommodityCode.Description,
            }).OrderBy(o => o.VendorNumber);

        var vendorhistoryList = Session.Query<PurchaseOrderLineItem>()
            .Where(pOpredicate)
            .Where(p => p.Stock.Number != null)
            .ToList()
            .Select(c => new
            {
                stockId = c.Id,
                LastPurchaseDate = c.PurchaseOrder.OrderDate.ToString("yyyy/MM/dd"),
                VendorNumber = c.PurchaseOrder.PurchaseOrderVendor.Vendor.Number,
                LastPurchasePrice = c.UnitPrice,
                LastTransactionDate =
                    c.LastTransactionDate != null ? c.LastTransactionDate.Value.ToString("yyyy/MM/dd") : null,
                LeadTimeDays = GetDays(c.PurchaseOrder.OrderDate, c.LastTransactionDate),
            }).GroupBy(d => d.VendorNumber).Select(gpo => gpo
                .OrderByDescending(x => x.LastPurchaseDate)
                .Take(4));

这是我面临的一个非常类似的问题,所以刚才回答了这个问题,这个问题也可以在这里应用。附上该问题的链接

      var stockdetailResult = from sd in stockDetail
            join vh in vendorhistoryList on sd.Id equals vh.Id into sv
            from vs in sv.DefaultIfEmpty() ???
          .select ( c=> c.fields1....c.fields2...)