2013-09-23 1 views
7

F # 유형 공급자의 유형 정의에는 종종 상수 표현식이 필요합니다. SQL 형 제공자 : SCM에 코드를 커밋하고, 더 그 일을하고 빌드 서버를 가진 경우F # 유형 공급자 및 연속 통합

type dbSchema = SqlDataConnection<"Data Source=MySqlServer;Initial Catalog=MyDatabase;"> 

그러나, 당신은 아마 같은 연결 문자열이 아니라 연결 문자열을 사용하지 않으 빌드 프로세스에서 생성 된 SQL 서버 데이터베이스

이 문제를 해결할 수 있습니까?

데이터베이스 액세스 코드의 컴파일 타임 검사를 제공하기 때문에이 작업을 수행하는 것이 정말 좋을 것입니다.

업데이트 @tomaspetricek에 의해 제안 된이 솔루션은 매우 잘 작동하지만 연결 문자열에 공급자 이름을 추가했다 :

<add name="DbConnectionString" providerName="System.Data.SqlClient" connectionString="Data Source=MySqlServer;Initial Catalog=MyDatabase;"/> 
+0

문자열이 구성 파일에서 제공된 경우 더 좋을 것입니다. –

+0

@RobertHarvey 실제로 그것은 정확히 수행 할 수있는 것입니다 .-) –

답변

12

당신은 확실히에서 키를 사용하여 연결 문자열을 지정할 수 있습니다 구성 파일 (MSDN documentation 참조) : 일반적으로

SqlDataConnection<ConnectionStringName="...", ConfigFile="app.config"> 

는 타입 공급자는 몇 가지 상수 표현이 필요할 수 있습니다,하지만 난 널리 사용되는 것들의 대부분이 방법을 제공 생각 이것을 피하십시오. 예를 들어, SqlDataConnection은 설정 파일에서 설정을 읽을 수 있으며, 다른 표준 F # 유형 공급자는 LocalSchemaFile을 지정하여 필요한 구조를 로컬에서 지정할 수 있습니다 (예 : *.dbml SQL 용 파일).

F # 데이터 형식 공급자는 URL을 원격 파일로 가져올 수 있지만 로컬 파일을 가져올 수도 있습니다. 그래서 항상 일정한 연결 문자열 (등)을 지정하지 않고 정보를 지정하는 방법이 있어야한다고 생각합니다. 그러나 특정 공급자에 대해 물어보십시오.

+0

예를 들어 질문을 업데이트했습니다. – spacedoom