2012-04-01 4 views
0

ASP.NET MVC 3에서 Entity Framework Code First로 실행되는 응용 프로그램이 있습니다. 개발 과정에서 SQL Compact 데이터베이스를 사용하고 있었지만이를 가상 서버로 옮길 때 SQL Express를 대상으로했습니다.요청한 .Net Framework 데이터 공급자를 찾을 수 없습니다. 설치되지 않았을 수 있습니다.

SQL Compact 데이터베이스에서 SQL 스크립트로 모델을 추출하고이를 서버에서 실행하여 DB를 생성함으로써 "마스터에서 CREATE DATABASE in master"오류와 관련된 문제가 발생했습니다.

나는 EF 형식을 사용하는 SQL Express 인스턴스를 가리 할 수있는 새로운 연결 문자열, 만든

:

<add name="LouiseClarkEntities" connectionString="metadata=res://*/Models.LouiseClark.csdl|res://*/Models.LouiseClark.ssdl|res://*/Models.LouiseClark.msl;provider=System.Data.EntityClient;provider connection string=&quot;Data Source=.\SQLEXPRESS; Initial Catalog=LouiseClark; User ID=<username>; Password=<password>&quot;" providerName="System.Data.EntityClient" /> 

DB를 사용하는 페이지로 이동하면 지금 점점 오전 오류입니다 :

Unable to find the requested .Net Framework Data Provider. It may not be installed. 

나는 시도하고이 문제를 해결할 것입니다 있는지 확인하기 위해 서버에 엔티티 프레임 워크 4.1을 설치했지만 훨씬 잘 할 것 같지 않았다. 오류 페이지에 스택 추적에서

발췌문 :이 지금 일 동안 저를 도청 한 바와 같이

[ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.] 
    System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1420567 
    System.Data.EntityClient.EntityConnection.GetFactory(String providerString) +35 

[ArgumentException: The specified store provider cannot be found in the configuration, or is not valid.] 

어떤 도움이 극명하게 될 것이다!

감사합니다,

크리스

답변

0

먼저 코드를 사용하여 일반 연결 문자열을 사용합니다. 및 PM 콘솔에서 사용하는 - 당신이 뭘 잘못했는지

<add name="LouiseClarkEntities" connectionString="Data Source=.\SQLEXPRESS; Initial Catalog=LouiseClark; User ID=<username>; Password=<password>" providerName="System.Data.SqlClient" /> 
+0

감사합니다. @Eranga 그러나 이제 내 사용자 정의 초기화 프로그램에서'context.Database.CompatibleWithModel (false)'호출이 false를 반환합니다. 개발 DB에서 서버로 메타 데이터 테이블을 복사했으며 테이블이 일치했습니다. – Chris

0
두 번째 문제에

, 너무 최초의 부분적 원인 ...

which I got around by extracting the model from the SQL Compact database into an SQL script and executing that on the server to create the DB.

당신은 그것에 대해 이주 스크립트를 사용해야입니다 Update-Database -Script을 사용하여 필요한 것을 덤프 한 다음 서버 데이터베이스에 배포하십시오.

문제는 CF에 고유 한 테이블과 데이터가 제대로 초기화되어야한다는 것입니다. 일치하지 않으면 그와 같은 결과가 나옵니다.

관련 문제