Linq查询Join显示Error
本文关键字:Error 显示 Join 查询 Linq | 更新日期: 2023-09-27 18:26:24
Linq查询Join显示错误
使用Join in Linq query
时,我收到此错误。
这就是我犯的错误。
无法隐式转换类型"System.Linq.IQueryable"<匿名类型#1>'到'System.Linq.IQUERABLE<xxx。Models.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
{
jx.jobtitle,
jx.jobrole,
jx.jobhour,
jx.companyname,
jx.jobposition,
jx.location,
jx.closedate,
jx.jobdescription
};
由于您没有向我们展示此代码所在的上下文,我猜job
变量正在其他地方(作为返回变量?)被预期IQueryable<jobxml>
的东西使用
在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;
}
这里的问题是您的linq查询构建了一个匿名类型的对象,而函数试图返回一个IQueryable<xxx.Models.jobxml>
正如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;
}