Запрос Linq Регистрация показывает ошибку

Запрос Linq Регистрация показывает ошибку

При использовании Join in Linq query я получаю эту ошибку.

Это ошибка, которую я получил.

Невозможно неявно преобразовать тип "System.Linq.IQueryable " в "System.Linq.IQueryable ". Явное преобразование существует (вам не хватает роли?)

Это мой код

var job = from jx in bc.db.jobxml 
 join jad in bc.db.Job_Agent_Details on jx.agent_id equals jad.Id 
 orderby jx.id 
 select new 
 { 
 jx.jobtitle, 
 jx.jobrole, 
 jx.jobhour, 
 jx.companyname, 
 jx.jobposition, 
 jx.location, 
 jx.closedate, 
 jx.jobdescription 
 };
2 ответа

Поскольку вы не показываете нам контекст, в котором этот код сидит, я собираюсь предположить, что переменная job используется в другом месте (как возвращаемая переменная?) IQueryable что ожидает IQueryable

В IQueryable select вы создаете IQueryable анонимного типа, но вы можете изменить его на jobxml следующим образом:

var job = from jx in bc.db.jobxml 
 join jad in bc.db.Job_Agent_Details on jx.agent_id equals jad.Id 
 orderby jx.id 
 select new jobxml //<-- This is the important change
 { 
 //snip
 };


Надеемся, что мы продолжим обсуждение ответа DavidG. Функция, в которой ваша var job =... находится, вероятно, имеет подпись метода, такую как:

public IQueryable<xxx.models.jobxml> DoStuff()
{

 // some code is here potentially

 var job = from jx in bc.db.jobxml 
 join jad in bc.db.Job_Agent_Details on jx.agent_id equals jad.Id 
 orderby jx.id 
 select new 
 { 
 jx.jobtitle, 
 jx.jobrole, 
 jx.jobhour, 
 jx.companyname, 
 jx.jobposition, 
 jx.location, 
 jx.closedate, 
 jx.jobdescription 
 };

 return job;

}
</xxx.models.jobxml>

Проблема здесь заключается в том, что ваш запрос linq создает объект анонимного типа, тогда как функция пытается вернуть IQueryable

Как указал DavidG, ваш запрос linq должен создать тип jobxml, а не анонимный. Это может быть достигнуто как таковое:

public IQueryable<xxx.models.jobxml> DoStuff()
{

 // some code is here potentially

 var job = from jx in bc.db.jobxml 
 join jad in bc.db.Job_Agent_Details on jx.agent_id equals jad.Id 
 orderby jx.id 
 select new xxx.Models.jobxml()
 { 
 JobTitle = jx.jobtitle, 
 JobRole = jx.jobrole, 
 JobHour = jx.jobhour, 
 // the rest of your object properties - note i'm making assumptions about your jobxml object here
 };

 return job;

}
</xxx.models.jobxml>

licensed under cc by-sa 3.0 with attribution.