【问题标题】:How to check null while joining multiple tables by LINQ?通过 LINQ 连接多个表时如何检查空值?
【发布时间】:2014-09-04 09:47:40
【问题描述】:
var Data = (from s in _context.PRD_RecipeItem.AsEnumerable()
            where s.RecipeID == _RecipeID
            from i in _context.Sys_ChemicalItem.Where(x => x.ItemID == s.ItemID).DefaultIfEmpty()
            from u in _context.Sys_Unit.Where(x => x.UnitID == s.UnitID).DefaultIfEmpty()
            from st in FinalStock.AsEnumerable().Where(x => x.ItemID == s.ItemID).DefaultIfEmpty()
            from sup in _context.Sys_Supplier.Where(x => x.SupplierID == (st==null? 0: st.SupplierID)).DefaultIfEmpty()
            select new PRDChemProdReqItem
            {
                ItemID = s.ItemID,
                ItemName = (i == null ? null : i.ItemName),
                RequiredQty = s.RequiredQty,
                RequiredUnit = s.UnitID,
                RequiredUnitName = (u == null ? null : u.UnitName),
                RequsitionQty = s.RequiredQty,
                ApproveQty = s.RequiredQty,
                ApproveUnit = s.UnitID,
                ApproveUnitName = (u == null ? null : u.UnitName),
                PackSizeName = "",
                PackQty = 0,
                SizeUnitName = "",
                RequisitionUnit = s.UnitID,
                RequisitionUnitName = (u == null ? null : u.UnitName),
                StockQty = (st == null ? null : (Math.Round(Convert.ToDecimal(st.ClosingQty), 2)).ToString()),
                SupplierID = (st == null ? 0 : st.SupplierID),
                SupplierName = (sup == null ? null : sup.SupplierName),
                ItemSource = "Via Requisition"
            }).ToList();

这是我的代码。当stnull 时,我得到System.Reflection.TargetException 类型的异常。如何解决这个问题。提前致谢。

【问题讨论】:

  • @har07 这些话怎么强调?我想下次这样做。谢谢。
  • 用反引号括起来

标签: c# linq linq-to-sql linq-to-entities linq-to-objects


【解决方案1】:

为什么不使用join?这将处理您的空值。

在此处查看包括源代码在内的更多详细信息:http://msdn.microsoft.com/en-us/library/bb311040.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2020-12-09
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多