Question: 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();

```

Answer: 
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).
You can try the following. It has worked for me as my ProductId os of type nullable.

```
IQueryable<matchings> data = db.matchings.Any(u => product.ProductId.Value == u.ProductId);

```

or this

```
IQueryable<matchings> data = db.matchings.Any(u => product.ProductId.Value.Equals(u.ProductId));

```

This worked in my case as the target id is a nullable type as it points to a 1:0 -> \* relationship.