我试图将两个表的列表放到我制作的通用类的一个列表中。
我的问题是如何从相关表中获取字段而无需为每个字段调用firstOrDefault,请参见示例代码,我需要一个很长的行来查询价格和成本字段,还有很多事情要做...
Dim items As IQueryable(Of ItemMain)
Return items.Where(Function(i) i.Status > -1).Select(Function(x) New ItemViewBasic() With {.ItemID = x.ItemID,
.Name = x.Name,
.BarcodeNumber = x.BarcodeNumber,
.Price = x.ItemStores.Where(Function(itemStore) itemStore.StoreNo = GlobalValues.StoreID).FirstOrDefault().Price,
.Cost = x.ItemStores.Where(Function(itemStore) itemStore.StoreNo = GlobalValues.StoreID).FirstOrDefault().Cost})
从@ Jeroen-Vannevel获得有关使用let关键字的注释的技巧后,我想出了方法。我将其张贴在这里以供将来参考。
Return (From i In items Let itemStore = i.ItemStores.Where(Function(its) its.StoreNo = GlobalValues.StoreID And its.Status > -1).FirstOrDefault() Where i.Status > -1
Select New ItemViewBasic With {.ItemID = i.ItemID,
.Name = i.Name,
.Cost = itemStore.Cost,
.BarcodeNumber = i.BarcodeNumber,
.OnHand = itemStore.OnHand,
.Department = itemStore.DepartmentID,
.Price = itemStore.Price,
.ModalNumber = i.ModalNumber})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句