Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq查询联接显示错误_C#_Linq_Linq To Sql - Fatal编程技术网

C# Linq查询联接显示错误

C# Linq查询联接显示错误,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,Linq查询联接显示错误 在Linq查询中使用连接时,我遇到了这个错误 这就是我犯的错误 无法将类型“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

Linq查询联接显示错误

在Linq查询中使用
连接时,我遇到了这个错误

这就是我犯的错误

无法将类型“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 
      };

由于您没有向我们展示此代码所在的上下文,我猜测
job
变量正在其他地方(作为返回变量?)被期望
IQueryable

选择
中,您正在创建一个匿名类型的
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
          };
var job=来自bc.db.jobxml中的jx
在jx.Agent\u id等于jad.id上的bc.db.Job\u Agent\u详细信息中加入jad
orderby jx.id

选择new jobxml/因为您没有向我们显示此代码所在的上下文,我猜测
job
变量正在其他地方(作为返回变量?)被预期的
IQueryable

选择
中,您正在创建一个匿名类型的
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
          };
var job=来自bc.db.jobxml中的jx
在jx.Agent\u id等于jad.id上的bc.db.Job\u Agent\u详细信息中加入jad
orderby jx.id
选择new jobxml/(希望)详细说明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;

}
public IQueryable DoStuff()
{
//这里可能有一些代码
var job=来自bc.db.jobxml中的jx
在jx.Agent\u id等于jad.id上的bc.db.Job\u Agent\u详细信息中加入jad
orderby jx.id
选择新的
{ 
jx.jobtitle,
jx.jobrole,
jx.jobhour,
jx.companyname,
jx.jobposition,
jx.location,
jx.closedate,
jx.jobdescription
};
返回工作;
}
这里的问题是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;

}
public IQueryable DoStuff()
{
//这里可能有一些代码
var job=来自bc.db.jobxml中的jx
在jx.Agent\u id等于jad.id上的bc.db.Job\u Agent\u详细信息中加入jad
orderby jx.id
选择新的xxx.Models.jobxml()
{ 
JobTitle=jx.JobTitle,
JobRole=jx.JobRole,
工作小时=jx.JobHour,
//其余的对象属性——注意,我在这里对jobxml对象进行假设
};
返回工作;
}
(希望)详细说明大卫的答案。
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;

}
public IQueryable DoStuff()
{
//这里可能有一些代码
var job=来自bc.db.jobxml中的jx
在jx.Agent\u id等于jad.id上的bc.db.Job\u Agent\u详细信息中加入jad
orderby jx.id
选择新的
{ 
jx.jobtitle,
jx.jobrole,
jx.jobhour,
jx.companyname,
jx.jobposition,
jx.location,
jx.closedate,
jx.jobdescription
};
返回工作;
}
这里的问题是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;

}
public IQueryable DoStuff()
{
//这里可能有一些代码
var job=来自bc.db.jobxml中的jx
在jx.Agent\u id等于jad.id上的bc.db.Job\u Agent\u详细信息中加入jad
orderby jx.id
选择新的xxx.Models.jobxml()
{ 
JobTitle=jx.JobTitle,
JobRole=jx.JobRole,
工作小时=jx.JobHour,
//其余的对象属性——注意,我在这里对jobxml对象进行假设
};
返回工作;
}

根据您删除的上一个问题,您能否显示该问题的上下文?此代码本身不应生成错误。请包括编译时类型的
bc.db.jobxml
bc.db.Job\u Agent\u详细信息
。如果对于某些
Foo
,这些类型是
iqeryable
而不是
iqeryable
,这将导致问题……此外,您之前的问题有不同的错误消息,并暗示这些类型是
iqeryable
iqeryable
@Kritner:对不起,我在问题中有一些错误,所以我删除了它。你可以编辑问题,你不必删除:P在这一点上,我甚至不能引用我以前的答案。根据你以前删除的问题,你能显示其中的上下文吗?此代码本身不应生成错误。请包括编译时类型的
bc.db.jobxml
bc.db.Job\u Agent\u详细信息
。如果对于某些
Foo
,这些类型是
iqeryable
而不是
iqeryable
,这将导致问题……此外,您之前的问题有不同的错误消息,并暗示这些类型是
iqeryable
iqeryable
@Kritner:对不起,我在问题中有一些错误,所以我删除了它。你可以编辑问题,你不必删除:P在这一点上,我甚至无法引用我以前的答案。你添加的唯一内容是错误消息,而不是这个linq查询的代码。我无法从两个表中获取内容,但通过给jobxml,我给了jx,它现在可以工作了。投赞成票:)酷。我接受了你的答案,Kritner也很好地解释了答案,谢谢:)你唯一添加的是错误消息,而不是这个linq查询的代码。我无法从两个选项卡获取内容