2011-09-30 4 views
0

특정 게시물에 대한 의견을 얻으려는 블록이 있습니다. MVC 3 및 ​​VBNET 사용. 게시물 URL은/Blog/Post/1과 같습니다. 문제없이 게시물을 표시 할 수 있지만 Comments 테이블에서 PostId = 1에 대한 의견을 가져와야합니다. 나는 Linq에 내부 문을특정 게시물에 대한 모든 댓글을 검색하는 방법은 무엇입니까?

Dim results = From P In _rdsqlconn.Posts Where P.PostId = id Join c In _rdsqlconn.Comments On P.PostId Equals c.PostId Select P 



Public Class RDSQLConn 
     Inherits DbContext 

     Public Sub New() 

     End Sub 


     Property Posts As DbSet(Of Post) 
     Property Categories As DbSet(Of Category) 
     Property Comments As DbSet(Of Comment) 

    End Class 

에 가입하려고하지만 예외 :

`Unable to cast object of type 'System.Data.Entity.Infrastructure.DbQuery`1[RiderDesignMvcBlog.Core.Entities.Post]' to type 'RiderDesignMvcBlog.Core.Entities.Post'.` 

그러나 SQL 쿼리를 같은 사람이 아래에 잘 작동한다. 나는이 SQL 문을 내 EF로 전달할 수 있습니까?

Select * From Posts INNER JOIN Comments on dbo.Posts.PostId = Comments.PostId where dbo.Posts.PostId = 1 
+0

왜 당신이 직접 참여 실행 할 ? 여러분의 게시물이 네비게이션 속성과 정확하게 매핑 되었다면 코멘트를로드하기 위해 eager loading ('Include') 메소드를 사용할 수 있습니다. –

+0

@LadislavMrnka, 내비게이션 속성은 edmx 파일이있는 경우에만 작동합니까? 난 그냥 내 엔터티 및 DBContext 클래스가 있습니다. –

+0

안녕하세요. 오랜만이야. 나는 네비게이션 속성, 유창한 매핑 및 물건에 대해 알아 냈다고 가정합니다. –

답변

0
Dim results = From P In _rdsqlconn.Posts Join c In _rdsqlconn.Comments On P.PostId Equals c.PostId 
Where P.PostId = id 
Select P 
+0

당신이 제공 한 linq 문을 시도했지만 여전히 'System.Data.Entity.Infrastructure.DbQuery'1 [RiderDesignMvcBlog.Core.Entities.Post]'유형의 객체를 캐스팅 할 수 없습니다. 'RiderDesignMvcBlog.Core.Entities.Post '. –

관련 문제