簡體   English   中英

如何將 SQL 查詢轉換為 LINQ

[英]How can I transalte SQL Query to LINQ

我試圖將 SQL 查詢翻譯為 Linq 語句:

 SELECT f.BarcodeNumber,m.Name, f.Model, SUM(f.Quantity) as FoundedAssetsQty, ISNULL(a.Quantity,0) as AssetQty
  FROM [InventoryDB].[dbo].[FoundedAssets] f
  join [InventoryDB].[dbo].[PhisicalStockCheckSheets] p on p.ID = f.PhisicalStockCheckSheetId
  join [InventoryDB].[dbo].[Inventories] i on i.ID = p.InventoryId
  left join [InventoryDB].[dbo].[Assets] a on a.BarcodeNumber = f.BarcodeNumber
  join [InventoryDB].[dbo].[Manufacturers] m on m.ID = f.ManufacturerId
  where p.InventoryId = 10
  group by f.BarcodeNumber, a.Quantity, f.Model, m.Name

我不知道該怎么做。 我嘗試了很多方法,但我失敗了。 有人可以幫我嗎?

我嘗試使用Linqer,但是當我配置連接時它失敗了,所以我自己編寫了linq指令。 最后我找到了答案。 我沒有提到實體之間的關系,但這並不重要。

var summary = _context.FoundedAssets.Include(f => f.Manufacturer).
                Include(f => f.Asset).
                Include(f => f.PhisicalStockCheckSheet).ThenInclude(f => f.Inventory).
                Where(f => f.PhisicalStockCheckSheet.Inventory.ID == id).
                Select(x => new InventorySummaryModel()
                {
                    BarcodeNumber = x.BarcodeNumber.Value,
                    ManufacturerName = x.Manufacturer.Name,
                    Model = x.Model,
                    AssetsQuantity = x.Asset.Quantity,
                    FoundedAssetQuantity = x.Quantity
                }).ToList();

            var groupedSummary = summary.GroupBy(x => x.BarcodeNumber).Select(x => new InventorySummaryModel()
            {
                BarcodeNumber = x.First().BarcodeNumber,
                ManufacturerName = x.First().ManufacturerName,
                Model = x.First().Model,
                FoundedAssetQuantity = x.Sum(a => a.FoundedAssetQuantity),
                AssetsQuantity = x.First().AssetsQuantity
            }).ToList();

也許存在任何更簡單的方法,但這種方法可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM