【发布时间】:2016-04-21 09:30:04
【问题描述】:
我有三张桌子
表 #1:BossEmp
SNo JobID BossID EMPID StartDt
_____________________________________________________
1 1 6 1 05-20-2016
2 1 6 2 05-20-2016
3 2 7 3 06-20-2016
4 2 7 4 06-20-2016
5 2 7 5 06-20-2016
表 #2:员工
EmpID EmpName Gender DOB Dep
_________________________________________________________
1 Sakthivel M 12-11-1986 Development
2 Regina F 04-03-1989 Development
3 Samantha F 12-12-1987 Development
4 Keerthi F 08-18-1988 Development
5 Pranitha F 11-10-1985 Development
6 Vijay M 02-21-1987 Development
7 Bhavana F 12-06-1985 Development
表#3:工作
JobID Title Description
__________________________________________
1 RSI Description RSI
2 MSI Description MSI
在表 #1 中,BossEMP -> JobID 是 Job Table 中的 外键,BossEmp -> BossID, EmpID 是 外键 strong>员工表。
EDMX 类图是
BossEmps -> EmpID === Employee -> EmpID
BossEmps1 -> BossID === Employee -> EmpID
BossEmps -> JobID === Job -> JobID
现在我需要创建一个模型的对象
Class WorkInfo
{
public List<Employee> EmpList { get; set; }
public Job JobInfo { get; set; }
}
现在我需要创建List<WorkInfo>,它应该只包含女性。
请帮助我如何在 LINQ C# 中有效地选择导航属性来构造List<WorkInfo>
数据库包含超过 100 万条记录。
我尝试了以下代码:
using (var db = new EmployeeEntities()) {
db.BossEmps.Where(b => b.Employee.Gender == "F").Select(e => new {
Emp = new {
Name = e.Employee.EmpName,
Id = e.Employee.EmpId
},
JobInfo = new {
Name = e.Job.Title,
Id = e.Job.JobID
}
}).GroupBy(x => x.JobInfo).ToList();
}
【问题讨论】:
-
你想要一个包含 List
的 List 吗?这听起来不对。你试过什么了?有什么代码不能按你的意愿工作吗? -
等一下,我会追加...
-
WorkInfo 中的 List
() 应该只是 Employee 的单个实例,因为您将包含多个 WorkInfo 对象,您可以将它们放入 List -
@monstertjie_za WorkInfo 表示工作,现在我有两个工作,所以我使用 List
-
请包括所涉及的实体模型类(例如Employee、Job等)。最后,您尝试过的 LINQ 查询速度很慢,因此我们可以对其进行分析并建议您使用更好的查询(如果有的话)。
标签: c# linq linq-to-entities edmx navigation-properties