제 데이터베이스에서 양보권은 Firms와 다 대일 관계입니다 (각 양보권에는 FirmID가 있습니다). SqlMetal은이 관계를 캡처하고 적절한 클래스를 생성하여 각 양보에 Firm 요소를 갖게합니다.정상적으로 Linq에서 SQL 외래 키를 다루는 방법은 무엇입니까?
From c as Concession in Db.Concessions _
Select _
c.ConcessionID, _
c.Title, _
c.Firm.Title
문제는 경우에 따라 사업 시행자가 기업에 할당되지 않은 것입니다 (C : I는 해당 기업에 대한 정보와 함께 양보의 목록을 반환합니다 (여기 간체) 쿼리에 바인딩 해요 .FirmID는) null의 경우, 그래서 c.Firm는 아무것도 내가 얻을 Object not set to an instance
등
:
From c As Concession In Db.Concessions _
Join f As Firm In Db.Firms On f.FirmID Equals c.FirmID _
Select _
c.ConcessionID, _
c.Title, _
Firm_Title = f.Title
이 때 오류 FirmID가 발생하지 않습니다 null (Firm_Title은 빈 문자열)이지만 우아하지 않다 : 그것은 객체 지향적이지 않으며, Linq to SQL이 이미 포착 한 모든 관계 정보를 활용하지 못한다.
이 상황을 해결할 수있는보다 효과적인 방법이 있습니까?
나는 당신이 대안으로 할 수 있다고 생각 : if (c.Firm.Title, String.Empty) – Kevin
아니요, "개체 참조가 개체의 인스턴스로 설정되어 있지 않습니다"c.Firm 아무것도없는 경우 throw합니다. –