나는 lightswitch LOANS (ID (기본값), ..) 및 RELEASES (ID (기본값), Loan ..) 테이블에 두 개의 테이블을 보유하고 있습니다. datagrid.so에 표시되도록해야합니다. wcf RIA 클래스 라이브러리를 만들었습니다 .i wanto 아직 릴리스가없는 모든 대출을 반환합니다. 그 것에 대한 linq 쿼리가 될 것입니다. 다른 SO 게시물에서 이것을 시도했지만 null 참조 예외가 발생했습니다 .Nullreference 예외가 사용자 코드에 의해 처리되지 않았습니다. 객체 참조가 객체 인스턴스로 설정되지 않았습니다.모든 보류 대출을 얻는 Linq 쿼리
Loan to Release는 1 : 0/1 0 또는 하나의 릴리스) 관계 대출에는 0 개 또는 1 개의 관계가있을 수 있습니다. 릴리스에는 대출이 있어야합니다. 이 같은 일을 효율적으로 이제
[Query(IsDefault = true)]
public IQueryable<PendingLoans> GetPendingLoans()
{
var res = from l in this.context.Loans
where !l.Releases.Any()
select new PendingLoans { BillNo = l.BillNo };
return res.AsQueryable();
}
인 쿼리 구문을 사용하려면
[Query(IsDefault = true)]
public IQueryable<PendingLoans> GetPendingLoans()
{
var res = from l in this.context.Loans
join r in this.context.Releases
on l equals r.Loan
where r.Loan == null
select new PendingLoans { BillNo = l.BillNo };
return res.AsQueryable<PendingLoans>();
}
어떻게하면 아무도 당신이 테이블 정의를 제공하지 않을 때 대답 할 수 있습니다. 모든 열/관계를 나열해야합니다. 왜 릴리즈에는 Id와 ReleaseId가 있습니까? 릴리스에 관계를 만들었습니까? 관계를 설정하지 않으면 조인이 필요하지 않으며 Lightswitch는 이와 같은 간단한 쿼리를 처리해야합니다. 그 쿼리는 당신이 대출을 돌려 줄 것을 요구하고 있지만 정당한 것은 NULL이 아니라는 것을 정직하게 말하는 것은 의미가 없습니다. NULL Loan –
@MarkHomer Homer 나는 lightswitch에서 이것을하기 쉬운 방법을 제안하는 관계 정보를 추가하기 위해 편집했습니다. –
LightSwitch를 사용 했으므로 한동안 사용하지 않았지만 어쨌든이 작업을 수행하지는 않습니다. 이 시점에서 더 나은 접근법은 데이터베이스에 대한 독서와 테이블 및 관계 설계입니다. 무의미한 복사 및 붙여 넣기 쿼리. –