Двойник из выглядит мне подозрительно.(Это не эквивалентно выражению SQL JOIN, если вы к этому стремились.)
Если вы можете объединить контексты:
Попробуйте создать отношения между BrokerNos и Promotions в edmx ииспользуя свойство навигации в запросе.
Например:
var result = dc.Promotions.Where(p => p.Source == source).
Select(p => new Promotion() {
Code = p.Code,
BrokerName = p.Broker.Name, // use new navigation property here
});
Если нет (пересечение будет выполнено в памяти, а не в БД !!!:
var result1 = dc.Promotions.Where(p => p.Source == source).
Select(p => new Promotion() {
Code = p.Code,
BrokerId = p.BrokerId, // add id property for intermediate results
}).ToList();
var result2 = RDdc.Brokers.ToList();
var finalResult = result1.Where(p => result2.Contains(b => b.BrokerId == p.BrokerId)).Select(p => new Promotion{
Code = p.Code,
BrokerName = result2.Single(b => b.BrokerId == p.BrokerId).Name,
});