我有问题我一直在努力解决过去几个小时,但没有任何运气。LINQ联盟没有返回想要的结果
首先,让我告诉你我的数据库看起来像(只是其中的一个重要组成部分):
[radno_mjesto] = JOB [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);
}
任何帮助,将不胜感激。
这不是你的错,但对于一个不熟悉你的语言的人来说名字很难记住。它看起来像一个替代密码已被应用。也许你可以翻译他们? – usr 2012-08-14 22:27:32
您知道您不需要在数据库中使用的LINQ上下文中使用相同的确切名称,您可以为表和列_meaningful_名称指定名称,并仍映射到混淆的名称。做你自己(和我们)一个忙,并做到这一点。甚至很难理解你的代码在做什么。 – 2012-08-14 22:37:20
其实,这个项目是我从第三人继承的东西。就我个人而言,我使用较短的表名。 – 2012-08-14 23:53:30