2014-12-15 3 views
0

Я пытаюсь выполнить этот поиск ниже, но я получаю сообщение об ошибке.Присоединиться к структуре сущности

ViewBag.IDCONCESSAO = 
    from p in db.SINCO_CONCESSAO.ToList() 
    join c in db.MUNICIPIOS_VIEW.ToList() on p.IDMUNICIPIO equals c.NOME_MUNICIPIO 
    select new 
     { 
      Id = p.IDCONCESSAO, 
      Nome = p.IDCONCESSAO + " - " + c.NOME_MUNICIPIO 
     }; 

Ошибка:

The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'Join'.

Что неправильно?

+1

Можете ли вы также рассказать о своих классах отображения и т. Д. Нужно видеть, какие объекты, о которых идет речь, помогают. – Paul

+1

Привет, Джессика, вы можете захотеть удалить '.ToList()' из каждой строки в запросе. Когда запущен 'ToList', он извлекает все строки из базы данных и переносит их в память, поэтому' JOIN' не выполняется на сервере базы данных, это делается на веб-сервере (или локально, если это окна программа). Это может привести к огромным проблемам с производительностью, если таблицы достаточно большие. –

ответ

0

Ошибка была в этой строке:

join c in db.MUNICIPIOS_VIEW.ToList() on p.IDMUNICIPIO equals c.NOME_MUNICIPIO 

Я делал связь с различными типами, потому что IDMUNICIPIO является INT и NOME_MUNICIPIO строка. Когда я перешел на это, это сработало:

join c in db.MUNICIPIOS_VIEW.ToList() on p.IDMUNICIPIO equals c.ID_MUNICIPIO 
Смежные вопросы