サプライヤテーブルがサプライヤオブジェクトで満たされていますが、ここでサプライヤIDはプライマリキーです。私はこれらのサプライヤーから提供されるすべての製品を見つける必要があります。多対多の関係があるため、SupplierProductsの間には、サプライヤIDとプロダクトIDが複合プライマリキーとして使用されているブリッジテーブルがあります。ラムダ式 - IEnumerable <Object>からwhere句に値を提供する方法
ラムダ関数を使用して特定のサプライヤのIEnumerable<SupplierProducts>
を取得しました。今、商品表を照会して、IEnumerable<SupplierProducts>
にあるすべての商品を検索したいと思います。私はforeach()
を使ってproductsテーブルにデータを入れるのではなく、ラムダ式のような 'in'を使いたいと思います。
これは以前の回答だったはずですが、残念なことに15分間試した後、私は明確な解決策を見つけることができませんでした。私はと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();
たとえば、 'db.Products.Where(w => supplierProducts.productID.Contains(w.ProductID))のように' w.ProductID'と 'supplierProcducts.productID'を入れ替えてみることができます。 ' –
@ KeyurPATEL supplierProductsはIEnumerableであり、First()メソッドまたは類似のメソッドを使用しない限り、productIDに直接アクセスできません。 – SJaka