SJa*_*aka 1 c# linq asp.net-mvc lambda
我有一个填充供应商对象的供应商表,supplierID是这里的主要关键.我要找到这些供应商提供的所有产品.由于存在许多关系,因此我在SupplierProducts之间有一个桥接表,其中supplierID和productID作为复合主键.
我已经使用lambda函数来获得IEnumerable<SupplierProducts>特定供应商.现在,我想查询产品表以查找所有产品IEnumerable<SupplierProducts>.我不想使用a foreach()来填充products表,而是使用'in'之类的lambda表达式.
我确信这一定早已得到回答,但不幸的是,在尝试了十五分钟后,我找不到明确的解决方案.我已经研究过contains()并且any()正常运作.这是我的代码:
IEnumerable<SupplierProducts> supplierProducts = db.SupplierProducts.Where(w => w.SupplierID == supplierID).ToList();
IEnumerable<Products> products = db.Products.Where(w => w.ProductID.contains(supplierProducts.productID)).ToList();
Run Code Online (Sandbox Code Playgroud)
你非常接近:你需要做的就是选择ID,然后使用Contains,如下所示:
var supplierProductIds = db.SupplierProducts
.Where(w => w.SupplierID == supplierID)
.Select(p => p.productID)
.ToList(); // You could get better performance without ToList
IEnumerable<Products> products = db.Products
.Where(w => supplierProductIds.Contains(w.ProductID))
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |