私はここ数時間解決しようとしていた問題を抱えていますが、まったく運がありません。
まず、私のデータベースがどのように見えるかをお見せしましょう(データベースの重要な部分です)。
[radno_mjesto] = JOB [grupa_radnih_mjesta] = JOB GROUPS(特定のグループに分類されるジョブ。たとえば、グループ名が裁判官である場合、このグループに分類されるジョブは、最高裁判所の裁判官、行政法判事、上級裁判官などになります。 )[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);
}
どんな助けでもいただければ幸いです。