gpt4 book ai didi

c# - 如何在 ASP.Net MVC 中使用内连接编写 sql 查询?

转载 作者:行者123 更新时间:2023-11-29 23:14:12 26 4
gpt4 key购买 nike

我正在尝试使用三个数据库表作为第三个下拉列表执行 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);
}
}

这是我的错误:

A specified Include path is not valid. The EntityType 'SAMPDBModel.EMPFILE' does not declare a navigation property with the name '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”类和数据库表,那就更好了。

关于c# - 如何在 ASP.Net MVC 中使用内连接编写 sql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27937434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com