如何通过在mVC中发送主键来获取外键?

时间:2017-09-11 01:10:29

标签: sql model-view-controller

我正在MVC中处理迷你项目,我在其中执行CRUD操作。 我有3张桌子: 员工:PK:EmpID 薪水:Fk:EmpID 图片:Fk:EmpID 我在两个html页面之间导航并将PK从one.html传递到two.html。 我想访问two.html上的Salary and Images表的数据,我有Employee表的主键,它是其余两个表中的外键。

我想读取附加到EmpID的所有数据,这些数据在Salary and Images表中被视为FK。 EmpID在Employee表中只有一行(PK) EmpID在Salary and Images表(FK)中有多行

提前谢谢

1 个答案:

答案 0 :(得分:1)

var employeeImages = _dbContext.Images.Where(i => i.EmpID == 21).ToList();

其中21是您在操作方法中收到的员工ID参数。

同样,您可以查询以下工资:

var employeeSalaries = _dbContext.Salaries.Where(i => i.EmpID == 21).ToList();

或者同一个电话中的两件事:

var employee = _dbContext.Employee.Where(e => e.Id == 21).Include(e => e.Images).Include(e => e.Salaries).ToList();

如果您正在使用生产应用程序,直接从控制器调用DbContext不是一个好主意。您可能还想查看EF's documentation

此外,当您在控制器层工作时,不要考虑FK和PK方面的问题。这些只是领域模型。从标识符的角度考虑这些。一旦我们达到数据库级别(至少不应该是控制器),FK和PK只会进入游戏。