[英]How to program sql query with inner join in ASP.Net MVC?
我正在尝试使用第三个下拉列表的三个数据库表来执行LINQ语句。 下面是我的代码,但是当我在第二个下拉列表中选择一个集群时,我得到了一个错误(第三个下拉列表)。
**//SECTORS**
public JsonResult GetSectors()
{
using (SAMPDBEntities context = new SAMPDBEntities())
{
var ret = context.SECLIBs
.Select(x => new { x.seccd, x.unitacro }).ToList();
return Json(ret, JsonRequestBehavior.AllowGet);
}
}
**//CLUSTERS**
public JsonResult GetCluster(string seccd)
{
using (SAMPDBEntities context = new SAMPDBEntities())
{
var ret = context.CLUSLIBs
.Where(x => x.seccd.Contains(seccd))
.Select(x => new { x.cluscd, x.unitdesc }).ToList();
return Json(ret, JsonRequestBehavior.AllowGet);
}
}
**//EMPLOYEES**
public JsonResult GetEmployee(string cluscd)
{
using (SAMPDBEntities context = new SAMPDBEntities())
{
var ret = context.UNILIBs
.Where(a => a.cluscd.Contains(cluscd))
.Include(x => x.PPSAs.Select(y => y.EMPFILE.empno))
.ToList();
return Json(ret, JsonRequestBehavior.AllowGet);
}
}
这是我的错误:
指定的包含路径无效。 EntityType'SAMPDBModel.EMPFILE'未声明名称为'empno'的导航属性。
这是SQL查询(针对我的第三个下拉列表):
SELECT DISTINCT e.empno, e.lname, e.fname, e.mname, c.cluscd
FROM SECLIB a
INNER JOIN CLUSLIB b
ON a.seccd = b.seccd
INNER JOIN UNILIB c
ON b.cluscd = c.cluscd
INNER JOIN PPSA d
ON c.unitcode = d.unitcd
INNER JOIN EMPFILE e
ON d.empno = e.empno
WHERE e.empstat = 1 AND c.cluscd = @cluscd
我需要进行级联下拉列表,并需要根据所选部门和集群显示员工列表。 我该如何使用多个表呢? 请帮我。 提前致谢!
这可能是未指定从EDMX生成的正确的相应名称的问题。 请检查由Entity Framework生成的“ EMPFILE”类吗?它应该具有相似的名称,但区分大小写。
在SQL中查询时,不区分大小写。 但是C#是区分大小写的语言。
如果可以在此处发布“ EMPFILE”类和数据库表,则更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.