0
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));

4

1 回答 1

2

好吧,您不必使用联接。你可以只使用:

callData.Where(d => repStoreData.Contains(d.LOCATION))

假设d.LOCATION是一个字符串

但是,您可能不想使用当前的repStoreDataas声明来执行此操作IEnumerable<string>- LINQ 将无法将其转换为要在数据库中执行的查询

但是,如果您能够声明repStoreDataIQueryable<string>,那将更有可能运作良好。我不知道这是否适用于ObjectSet<T>,但我希望如此。

于 2012-11-27T17:59:00.073 回答