2009-11-06 4 views
1

A (aid, ...), B (bid, ...) 관계 (aid, bid, ...) 그런 다음 매개 변수로 원가를 얻고 결과를 얻고 싶습니다. b. SQL을 사용하는 경우다른 테이블에서 데이터를 가져 오기 위해 linq를 작성하는 방법은 무엇입니까?

select b.* from B join Relationship on b.bid = Relationship.bid 
where relationship.aid = aid_param 

위의 SQL과 동일한 결과를 작성하는 방법. (이 경우 외래 키가 제대로 작성되지 않았습니다)?

답변

0
var bQuery = from r in MyContext.Relationship 
      where r.aid == aid_param 
      select r.B; 

당신이 관계 모델에서 설정하지 않으면, u는 할 수 있습니다

var bQuery = from b in myContext.B 
      where myContext.Relationship 
       .Any(r => r.aid == aid_param && b.bid == r.bid) 
      select b; 
1

것은 당신이 당신을 LINQ 데이터 컨텍스트에 테이블을 추가 할 디자이너를 사용했다고 가정하면 데이터베이스에 외래 키 관계가 정의되어 있거나 디자이너에서 연관을 직접 코딩 한 경우 B 매개 변수로 필터링 된 B 테이블과 EntitySet of Relationship 속성을 참조하고 일치하는 항목이 있는지 확인할 수 있어야합니다. 관계
에서
B 에서

var relationships = db.B.Any(b => b.Relationships.Where(r => r.aid == aid_param)); 
+0

그 B를 선택하고자 @tvanfosson (추천 내 대답은) 관계가 아니라. – eglasius

+0

관계가있는 B를 선택하도록 업데이트했습니다. – tvanfosson

0

VAR 출력 = 여기서 (b.bid = Relationship.bid,
relationship.aid = aid_param)

관련 문제