2013-03-27 3 views
1

Я пытаюсь создать запрос соединения в Linq. Я хочу присоединиться к таблице более одного поля с такими жеприсоединение к таблице с несколькими полями в одной таблице

стол. См. Мой код ниже.

var roles = (from ords in _orderRepository.Table 
         join customers in _customerRepository.Table on ords.CustomerId equals customers.Id 
         join ordprvrnts in _orderProductVariantRepository.Table on ords.Id equals ordprvrnts.OrderId 
         join prdvrnts in _productVariantRepository .Table on ordprvrnts.ProductVariantId equals prdvrnts.Id 
         **join cstevntrle in _customerEventRoleRepository.Table on 
          new{ customers.Id equals cstevntrle.CustomerId } && 
          new { cstevntrle.EventId == model.Event}** 
         orderby customers.Email ascending 
         select new CustomerEventRolesModel 
         { 

          Customer = customers.Email, 
          CUstomerId =customers.Id 

         }); 

Я стараюсь фильтровать customerEventRoleRepository.Table с CustomerId и EVENTID

, как я могу это сделать в этом запросе с соединением.

Пожалуйста, помогите.

ответ

3

у вас есть булевы сравнения в определениях анонимных типов ...

изменить ваши на пункте к следующему:

join cstevntrle in _customerEventRoleRepository.Table on 
    new { CustomerId = customers.Id, EventId = model.Event.EventId } equals 
    new { CustomerId = cstevntrle.CustomerId, EventId = cstevntrle.EventId } 

я не вижу «модель» определено в любом месте, так что я не уверен, что это сработает, но этого должно быть достаточно, чтобы продемонстрировать, как работает объединение на основе нескольких полей - каждый анонимный класс содержит поля из одной «стороны» соединения.

Смежные вопросы