我有问题我过去几个小时都试图解决这个问题,但根本没有任何运气。
首先,让我向您展示我的数据库的外观(只是其中的一个重要部分):
[radno_mjesto] =工作 [grupa_radnih_mjesta] =工作组(属于特定群体的工作;例如,如果群组名称评判将属于该群体的工作将是:最高法院法官, 行政法法官,高级法官等) [osoba] = PERSON
我想要实现的是查询属于特定工作组的所有人,但几个小时之后我无法成功完成这项工作。我正在尝试以下代码的各种组合,我只得到了2个结果:所有人(无论他们的工作是什么)或只有特定工作的人(在这种情况下来自工作组的最后一份工作) 。
var sveOsobe = from p in db.osobas
select p;
if (chkGrupaRadnihMjesta.Checked)
{
int id = Convert.ToInt32(GrupaRadnihMjesta.SelectedValue);
var radnaMjesta = from rm in db.grupe_radnih_mjesta_radna_mjesta
where rm.grm_id == id
select rm;
var praznoOsobe = sveOsobe.Where(o => o.osoba_id == -1);
foreach (var radnoMjesto in radnaMjesta)
{
var sveOsobeRadnaMjesta = from p in db.osobas
where p.osoba_id == -1
select p;
sveOsobeRadnaMjesta = sveOsobe.Where(o => o.rm_id == radnoMjesto.rm_id).Union(sveOsobeRadnaMjesta);
praznoOsobe = praznoOsobe.Union(sveOsobeRadnaMjesta);
}
sveOsobe = sveOsobe.Intersect(praznoOsobe);
}
任何帮助都将不胜感激。
答案 0 :(得分:1)
这应该有效....
if (chkGrupaRadnihMjesta.Checked) {
int id = Convert.ToInt32(GrupaRadnihMjesta.SelectedValue);
var sveOsobe = (
from p in db.osobas
join l in db.grupe_radnih_mjesta_radna_mjesta on l.rm_id equals p.rm_id
where l.grm_id == id
select p
).Distinct();
}
我猜这里的名字!!!