2011-06-14 2 views
0

모델에서 정의되지 않은 뷰에서 레코드를 검색하고 열 이름이나 서수를 사용하여 열 값을 검색 할 수 있습니까?EF 정의되지 않은 테이블/뷰에서 엔티티 검색

이 코드 쓰기 :

AppContext ctx = new AppContext("name=DbConnString"); 
string commandText = "SELECT V.ID, V.Code, V.Description FROM vw_UserDefinedView AS V"; 
ObjectQuery<DbDataRecord> query = new ObjectQuery<DbDataRecord>(commandText, ctx); 

을하지만 난 그것을 실행하려고 할 때 예외가 발생했습니다

'vw_UserDefinedView' could not be resolved in the current scope or context. Make sure that all referenced variables are in scope, that required schemas are loaded, and that namespaces are referenced correctly. Near simple identifier, line 1, column 43. 

는 엔티티 프레임 워크 및 ObjectContext는 (또는 DbContext)를 사용하여이 작업을 수행 할 수있는 방법이 있나요 ?

안부, 알베르토

답변

0

아니,이 수 없습니다. 메시지에 이미 나와 있듯이 " ''vw_UserDefinedView '를 현재 범위 또는 컨텍스트에서 확인할 수 없습니다." 이보기는 컨텍스트 (.edmx)에 알 수 없습니다. 데이터베이스가 아닌 엔티티 모델을 쿼리한다는 것을 알아야합니다!

엔터티 모델에서이보기를 원하지 않으면 SqlCommand, SqlConnectionSqlDataReader을 사용하여 vw_UserDefinedView와 관련된 문을 실행하십시오.

UPDATE는 어쩌면이 링크는 더 당신을 도울 수 있습니다 : 그것은 사용자가 런타임에 공급되고, 심지어 열을 사용자가 정의되어 있기 때문에 Entity Framework : Add Properties/Entities during runtime

+0

이보기는 엔터티 모델에 존재하지 않습니다. 엔티티 프레임 워크를 사용하려는 이유는 주로 여러 연결 문자열을 관리하고 데이터베이스 독립성 (SQL Server, Oracle 등)을 유지하기를 원하지 않기 때문입니다. 내가하려는 일을 성취 할 다른 방법이 있습니까? 런타임시 모델에 새 엔티티 정의를 추가하는 방법이 있습니까? – Alberto

+0

엔티티 def를 추가 할 수 있는지 여부를 모릅니다. 런타임에. –

+0

아니, 드라이버를 가지고 칼로 사용하려고합니다. EF는 단순히 이것을하기위한 것이 아닙니다. – Tridus