2012-03-09 1 views
4

새 8 # 형식 공급자를 Win 8 CP의 VS 11 Beta에서 사용하고 있는데 SqlDataConenction 형식 공급자가 SqlCe 데이터베이스를 사용하도록 설득 할 수 없습니다. 코드 :F # SqlDataConnection TypeProvider가 Sql Server Ce에서 작동하지 않습니다

open System 
open System.Data 
open System.Data.Linq 
open System.Data.SqlServerCe 
open Microsoft.FSharp.Data.TypeProviders 
open Microsoft.FSharp.Linq 

type dbSchema = SqlDataConnection<"Data Source=C:\Test\Test.sdf"> 

데이터베이스가 존재하고 VS11 대화 서버 탐색기를 사용하여 만든/데이터 연결/새 연결을 추가/SQL 서버 CE는/만듭니다. 내가 노력할 상관없이 내가 항상 다음과 같은 오류를 얻을 :

지금까지 시도했습니다 무엇

The type provider 'Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders' reported an error: Error reading schema. Error : Cannot open 'C:\Test\Test.sdf'. Provider 'System.Data.SqlServerCe.3.5' not installed.

:

  • 는 세륨 3.5은 SQL Server를 설치하지만, 오류가 계속 동일합니다.
  • 연결 문자열 & 프로젝트에 매칭 기준 첨가 변성 :
    • "제공자 = System.Data.SqlServerCe.3.5을, 데이터 소스 = C : \ 테스트 \ Test.sdf"
    • '제공자 = 시스템 .Data.SqlServerCe.4.0; 데이터 소스 = C : \ 테스트 \ Test.sdf "
+2

''데이터 소스 = C : \\ Test \\ Test.sdf "'를 시도하면 다른 것입니까? – ildjarn

+0

MSDN (http://msdn.microsoft.com/en-us/library/hh361033(v=vs.110).aspx#BKMK_SetUpTypeProv)에서이 예제에 따르면 이스케이프가 올바르게 보이지만 백 슬래시도 이스케이프 처리하지 않습니다 – m0sa

+0

F #에서는 이스케이프 처리되지 않은 버전이 의미하는 경우 백 슬래시 만 이스케이프 처리하면됩니다. 샘플의 "\ I"는 아무 의미도 없지만 코드의 "\ t"는 탭을 의미합니다. 그러나 공급자가 CE로 작업하지 않는다고 생각합니다. 지난 번 시도한 결과를 얻지 못했습니다. –

답변

1

이 질문은 몇 년 전에 질문을 받았다 알고 있지만, 미래의 심판에 대한 :

[<Literal>] 
let connection_string [email protected]"Data Source=C:\Test\Test.sdf" 

type dbSchema = SqlDataConnection<connection_string>