Linq查询返回错误
我无法理解为什么我从linq查询返回的结果总是不正确Linq查询返回错误,linq,Linq,我无法理解为什么我从linq查询返回的结果总是不正确 [HttpGet] public List<Programs> GetPrograms() { using (var context = new ProgramsDataContext1()) { var qry = (from a in context.Programs join b in contex
[HttpGet]
public List<Programs> GetPrograms()
{
using (var context = new ProgramsDataContext1())
{
var qry = (from a in context.Programs
join b in context.courselist on a.Prog_id equals(b.prog_id)
where a.Prog_id ==b.prog_id
orderby a.Programname
select new
{ Prog_id =a.Prog_id,Programname=a.Programname, programlevel=a.programlevel, planname=a.planname, catalogNo=b.catalogNO, coursetitle=b.coursetitle, subject=b.subject
}
).ToList();
return qry ;
}
}
[HttpGet]
公共列表GetPrograms()
{
使用(var context=newprogramsDataContext1())
{
var qry=(来自context.Programs中的
在a.Prog_id等于(b.Prog_id)的context.courselist中加入b
其中a.Prog_id==b.Prog_id
orderby a.程序名
选择新的
{Prog_id=a.Prog_id,Programname=a.Programname,programlevel=a.programlevel,planname=a.planname,catalogNo=b.catalogNo,coursetitle=b.coursetitle,subject=b.subject
}
).ToList();
返回qry;
}
}
qry上始终有一条红色下划线。这里有什么问题?谢谢。因为您已经在执行join,所以不需要
where
子句。另外,您的返回类型也不相同,这就是您得到的错误。您现在返回的是匿名
对象的列表,而不是程序
只需定义一个只列出两个类中所需属性的类,而不是构建匿名对象,创建该类的实例
public class ProgramsCourseDto
{
public int Prog_id {get;set;}
public string Programname {get;set;}
public int programlevel {get;set;}
public string planname {get;set;}
public int catalogNo {get;set;}
public string coursetitle {get;set;}
public string subject {get;set;}
}
[HttpGet]
public List<ProgramsCourseDto> GetProgramsCourses()
{
using (var context = new ProgramsDataContext1())
{
var qry = (from a in context.Programs
join b in context.courselist on a.Prog_id equals(b.prog_id)
orderby a.Programname
select new ProgramsCourseDto
{
Prog_id =a.Prog_id,
Programname=a.Programname,
programlevel=a.programlevel,
planname=a.planname,
catalogNo=b.catalogNO,
coursetitle=b.coursetitle,
subject=b.subject
}).ToList();
return qry ;
}
}
公共类程序
{
public int Prog_id{get;set;}
公共字符串程序名{get;set;}
公共int程序级别{get;set;}
公共字符串planname{get;set;}
public int catalogNo{get;set;}
公共字符串CourseTile{get;set;}
公共字符串主题{get;set;}
}
[HttpGet]
公共列表GetProgramsUsers()
{
使用(var context=newprogramsDataContext1())
{
var qry=(来自context.Programs中的
在a.Prog_id等于(b.Prog_id)的context.courselist中加入b
orderby a.程序名
选择新程序浏览数据以查看
{
Prog_id=a.Prog_id,
Programname=a.Programname,
programlevel=a.programlevel,
planname=a.planname,
catalogNo=b.catalogNo,
coursetitle=b.coursetitle,
主语
}).ToList();
返回qry;
}
}
如何定义类程序?select不创建程序实例,但创建匿名对象实例,最终的ToList无法匹配您的返回列表
程序是一个表类。我正在尝试从Programs和courselist表返回列。如何返回正确的类型?提前感谢。@user788448,您需要创建一个新的poco/dto来返回您需要的所有数据,然后发送一个列表
。在您的查询中,您可以在选择中创建新dto{}
,非常感谢!创建一个新的程序以解决我的程序。