string rep = "Joe Shmoe"
ObjectSet<StoreData> storeData = edmContext.StoreData;
ObjectSet<CallData> callData = edmContext.CallData;
IEnumerable<string> repStoreData = storeData.Where(r => r.RepName == rep).Select(s => s.Location);
IEnumerable<CallData> repCallData = Here is where I want to filter down the callData collection down to just the records that have a location that is contained in the repStoreData collection
我尝试过使用某种形式的Join和Any,但并不真正理解那些要求的论点。
这是我最好的尝试,这是不行的。
... = callData.Join(d => d.LOCATION.Any(repStoreData));
答案 0 :(得分:2)
你不必使用联接。你可以使用:
callData.Where(d => repStoreData.Contains(d.LOCATION))
假设d.LOCATION
是单个字符串。
但是,您可能不希望将当前repStoreData
声明用作IEnumerable<string>
- LINQ将无法将其转换为要执行的查询 at数据库。
但是,如果您能够将repStoreData
声明为IQueryable<string>
,则更有可能正常运作。我不知道这是否适用于ObjectSet<T>
,但我希望如此。