2013-11-01 6 views
6

Я хочу объединить два объекта в моем приложении MVC для обработки данных через соединение LINQ.LINQ Присоединиться к нескольким параметрам AND

Для этого я пытаюсь написать запрос, как,

from enumeration in db.Enumerations 
join cust in db.Customers on (enumeration.Value equals cust.lkpStatus &&  
enumeration.EnumerationTypeID.Contains('Cust') 

Но я получаю проблемы с этим запросом, поэтому, пожалуйста, дайте мне некоторые предложения по этому вопросу.

+0

http://stackoverflow.com/questions/3020442/linq-joining-in-c-sharp-with-multiple-conditions –

ответ

6

Попробуйте это решение:

from enumeration in db.Enumerations.Where(e => 
              e.EnumerationTypeID.Contains('Cust')) 
join cust in db.Customers on enumeration.Value equals cust.lkpStatus 
select enumeration; 
+0

Что делать, если условие будет чем-то вроде ----------------------------------- от перечисления в дБ. Перечисления. Где (x => x.EnumerationTypeID.Equals ("Customer.lkpStatus")) join cust in db.Customers on (enumeration.Value равно cust.lkpStatus) && cust.ID равно данных. выбрать перечисление; –

+0

Нет, в этом случае используйте это решение: из перечисления в db.Enumerations.Where (x => x.EnumerationTypeID.Equals ("Customer.lkpStatus")) присоединяется к cust в db.Customers.Where (c => c.ID == данные) на перечислении.Value равно cust.lkpStatus select enumeration; – alexmac

+0

Но в этом случае он не может выполнить соединение. Потому что «enumeration.Value» - это строка. «Cust.lkpStatus» - это значение int. –

1

это?

var data =  from c in db.Enumerations 
       from d in db.Customers 
       where c.Value.Equals(d.lkpStatus) 
       && c.EnumerationTypeID.Contains('Cust') 
       select c; 
+0

Я пробовал этот, но он не работал –

+0

'where' выполняет внутреннее соединение и исключает результаты, когда второй столбец равен NULL. – Dan

20

Регистрация должна быть сделана так:

var joinQuery = 
from t1 in Table1 
join t2 in Table2 
    on new { t1.Column1, t1.Column2 } equals new { t2.Column1, t2.Column2 } 
... 
+1

Я сделал этот пример и имею ошибку в «join» .. он говорит. Тип одного из выражений в предложении join неверен. Ошибка ввода типа в вызове «Join». Вы знаете, что это? – Diego

+0

@Diego пожалуйста показать код – IDeveloper

+0

IEnumerable модель = от пользователей в _db.Users присоединиться groupMembers в _db.GroupMembers на нового { users.User_id } равна нового { groupMembers.User_id } В обоих случаях длинный тип – Diego

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