首页 新闻 会员 周边 捐助

EF一对多,按需选择其中一条

0
悬赏园豆:10 [已关闭问题] 关闭于 2014-05-15 11:00

有两三个表:员工Employee、部门Department、员工部门关联:EmployeeDepartment

其中EmployeeDepartment表有三个字段:id(自增)、eid、did

员工有多条关联部门的数据,想取出关联id最大的那条,应该如何查询?

我现有的查询是这样的:

Employee employee = (from e in db.Employees.Include("EmployeeDepartments")
        where e.EmployeeId == 1001
        select e).First();
赏音师的主页 赏音师 | 菜鸟二级 | 园豆:221
提问于:2014-05-09 15:56
< >
分享
所有回答(2)
0

根据要查询的ID做OrderBY。用FirstOrDefault取值

cenlo | 园豆:583 (小虾三级) | 2014-05-09 16:18

员工数据已指定e.EmployeeId == 1001,只有一条,现在是想对导航属性里的值进行排序,不知道怎么操作。。。

支持(0) 反对(0) 赏音师 | 园豆:221 (菜鸟二级) | 2014-05-09 16:36
0

已经在员工表建立了导航 public virtual Department Department { get; set; }

查询:var employee=db.Employees.Include(u=>u.Department).Find(u=>u.EmployeeId == 1001).OrderBy(u=>u.Department.id);

happydaily | 园豆:260 (菜鸟二级) | 2014-05-09 18:24

我的导航属性是这样的:

public virtual ICollection<EmployeeDepartment> EmployeeDepartments { get; set; }

所以不知道怎么写。

Employee employee = (from e in db.Employees.Include("EmployeeDepartments")
where e.EmployeeId == id
orderby e.EmployeeDepartments.@#(@#……&@(
select e).First();

支持(0) 反对(0) 赏音师 | 园豆:221 (菜鸟二级) | 2014-05-10 16:01

@Badcode: 把导航改下就行了

支持(0) 反对(0) happydaily | 园豆:260 (菜鸟二级) | 2014-05-11 11:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册