2012-06-18 6 views
4

У меня есть основная таблица, называемая M1, которая состоит из идентификаторов трех отдельных таблиц T1, T2 и T3.запрос linq для объединения трех таблиц в одну таблицу

мне нужно присоединиться к 3 таблицы на M1, используя их Идентификаторы и отображать их имена Для этого я использую следующий запрос:

var query= (from i in dbContext.M1 
      join j in dbContext.T1 on i.Mt1_id equals j.Mt1_id 
      join l in dbContext.T2 on i.Mt2_id equals l.Mt2_id 
      join s in dbContext.T3 on i.Mt3_id equals s.Mt3_id 
      where i.Mid >= 1 
      select new 
      { 
       a=j.name, 
       b=l.name, 
       c=s.name 
      }).ToArray(); 

я использовал этот путь, но я получаю сообщение об ошибке о том, что "Type inference failed in call to Join"

Может ли кто-нибудь рассказать мне, где я ошибся?

+0

где указаны a, b и c. Являются ли они того же типа, что и i.name, l.name и s.name? Также я предполагаю, что использование Id для equals также одного типа. –

+0

j.name, l.name и s.name имеют одинаковый тип i.e, string..Они присутствуют в таблицах T1 T2 и T3.I в представлении снова отображаются a, b, c для отображения. – SahithiPinisetty

+0

Вы можете назначить a = j.name, b = l.name, c = s.name через цикл foreach в запросе типа anon. –

ответ

1

Пожалуйста, проверьте тип столбцов, чтобы избежать исключения «Ошибка вывода типа в вызове для соединения»