实体框架未显示查询结果中特定列的值

时间:2018-03-27 05:04:07

标签: c# sql sql-server winforms entity-framework-6

我在实体框架6中映射了一个SQL Server数据库。

EF中的数据库模型 enter image description here

问题在于,当我查询员工或所有员工的Employee表时,它不会返回与特定员工映射的EquipmentsEquipments列为空。

结果显示在DataGridView

特定员工的查询结果 enter image description here

我这样问:

SELECT * 
FROM Employee 
WHERE EmployeeID = 5;

似乎有什么问题?任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

你可以尝试:

cntxt.Employees.Include(b => b.Euipments).Where(e=>e.EmployeeId==5);

答案 1 :(得分:0)

以下是Linq中的一些示例,它们与您的查询相匹配,但也包括设备。

using (var context = new EmployeeContext()) {
    var employeeData = context.Employees.Where(p=> p.EmployeeID == 5)
                       .Include(t => t.Equipment).FirstOrDefault();
}

using (var context = new EmployeeContext()) {
    var employeeData = context.Employees.SqlQuery("SELECT * FROM Employee E JOIN Equipment EE ON E.EmployeeID = EE.EmployeeID WHERE E.EmployeeID = @id", new SqlParameter("@id", 5)).FirstOrDefault();
    }

我建议阅读如何传递参数

Entity Framework Raw SQL Queries

Execute Raw SQL Queries in Entity Framework 6: