Two simple queries - the exception occurs in :
matchings.Any(u => product.ProductId == u.ProductId)
What is wrong? If I write true
instead it all is good.
var matchings = (from match in db.matchings where match.StoreId == StoreId select match).ToList(); var names = (from product in db.Products where matchings.Any(u => product.ProductId == u.ProductId) select product).ToList();
First way :
Remove ToList()
in the first query.
Or
//instead of retrieving mathings List, retrieve only the productIds you need (which are a List of Primitive types) var productIdList = db.matchings .Where(m => m.StoreId == StoreId) .Select(x => x.ProductId) .ToList(); var products = db.Products .Where(p => productIdList .Contains(p.ProductId)) .ToList();
Or
//other way var produts = db.Products .Where(p => db.matchings .Any(m => m.StoreId == StoreId && m.ProductId == p.ProductId) ) .ToList();
Because I think you're in linq2entities, and you're using a List of Matchings in a query which is not possible (the title of your topic tend to make me believe that's your problem).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With