저는 지난 몇 시간 동안 해결하려고 노력했지만 문제가 있습니다.LINQ 유니언이 원하는 결과를 반환하지 않음
첫째, 내 데이터베이스 (그것의 단지 중요한 부분)처럼 보이는 방법을 보여 보자
[radno_mjesto] = JOB [grupa_radnih_mjesta] = JOB 그룹 (특정 그룹에 속하는 작업; 대법원 판사 등 행정법 판사, 수석 판사) [osoba] = PERSON
: 예를 들어, 그룹 이름이 될 것이다이 그룹에 속하는 것 심사 위원 작업 인 경우특정 작업 그룹에 속한 모든 사람들을 쿼리하는 것이지만 몇 시간 후에 성공할 수 없었습니다. 나는 다음과 같은 코드의 다양한 조합을 시도하고 있었고 내가 얻은 결과는 오직 두 가지 뿐이다 : 모든 사람들 (직업이 무엇이든 관계없이) 또는 특정한 직업만을 가진 사람들 (이 경우 작업 그룹의 마지막 직업) .
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
데이터베이스에서 사용되는 LINQ 컨텍스트에서 똑같은 이름을 사용할 필요가 없다는 것을 알고 있으면 테이블과 열에 _meaningful_ 이름을 지정하고 여전히 난독 화 된 이름에 매핑 할 수 있습니다. 자신과 (그리고 우리) 부탁을하고 그렇게하십시오. 코드가하는 일을 이해하는 것은 대단히 어렵습니다. –
사실,이 프로젝트는 제가 제 3 자로부터 물려받은 것입니다. 개인적으로 짧은 테이블 이름을 사용합니다. –