请不要给我lamba的帮助
I have two tables.
Employees:
pk
name
ExpenseTeamMembers:
pk
expMgrPk
empPk
Example: pk expMgrPk empPk
1 7 81
2 7 101
3 13 99
4 13 22
5 13 56
基本上,第一个表是员工列表,第二个表是用于跟踪哪些员工属于哪个经理的表。
第一次sql查找工作,mgr让我得到组合框中所选名称的pk。
我在联接中尝试做的是查找expMgrPk并查看哪些员工属于它并返回他们的名字而不是他们的pk。我很漂亮,需要一些帮助。再次请不要给我lamba帮助!!感谢
private void cboManagers_SelectedIndexChanged(object sender, EventArgs e)
{
if (cboManagers != null)
{
string selectedMgr = (string)cboManagers.SelectedValue;
using (DataClasses1DataContext db = new DataClasses1DataContext())
{
int mgr = (from f in db.employees
where f.name == selectedMgr
select f.pk).FirstOrDefault();
var emps = (from m in db.employees
join t in db.expenseTeamMembers on m.pk equals t.pK
where t.expMgrPk == mgr
select m.name).ToList();
lstSelected.DataSource = emps;
}
}
}
答案 0 :(得分:1)
在linq-to-sql中,您可以通过编写两个from
语句并结合where
语句来更轻松地编写联接。像这样:
var emps = (from f in db.employees
from m in db.expenseTeamMembers
where m.pk == mgr && f.pk == m.empPk
select f.name).ToList();
我发现这种语法更容易,编译代码时,查询将转换为传统的T-SQL连接。