2011-12-03 4 views
0

내 응용 프로그램은 데이터베이스에 SQL Server Ce를 사용하고 ORM으로 Entity Framework를 사용합니다. 이제 SQL Server Express로 전환하려고하는데 문제가 있습니다.SQL Server CE에서 SQL Server Express 엔터티로 전환

UPDATE

그래서 마침내 당신이 (내 경우 익스프레스 버전)을 SQL 서버에 대한 SQL 서버 CE 데이터베이스에서 생성 된 엔터티 모델을 사용할 수 없다는 것을 알아 낸 3 시간 동안 내 머리를 두드리는 후.

나는 두 데이터베이스의 생성 된 파일 (Designer.cs)을 볼 수있는 diff 프로그램을 사용하고 난 파일에서 이러한 차이를 발견 :

SQL Server CE       SQL Server 
FK__Download__000000000000003F   FK__Download__PlaneI__0519C6AF 

그래서 저는 두 엔티티 모델을 생성해야하지만, 어떻게 내 프로그램에서 두 사람 사이를 교환합니까?

두 엔티티 모델을 만들면 같은 개체 이름을 가진 두 개의 클래스가 생깁니다.

미리 감사드립니다.

답변

1

EDMX 파일은 실제로 세 부분으로 구성됩니다.

  • CSDL, 당신의 개념 모델
  • SSDL 스토리지 모델
  • MSL, 그 둘 사이의 매핑입니다.

일반적으로이 세 부분은 어셈블리의 리소스로 포함되며 사용하는 연결 문자열은 런타임에서 해당 어셈블리에서 어셈블리 문자열을 찾도록 지시합니다.

그러나 물리적 파일을 사용하고 응용 프로그램과 함께 배포 할 수 있습니다. 이러한 방법으로 동일한 CSDL을 사용할 수 있지만 특정 데이터베이스에 대해 다른 SSDL/MSL 세트를 사용할 수 있습니다. 이렇게하면 SqlCE 데이터베이스와 SQL Server 데이터베이스 모두에 대해 엔터티 모델을 다시 사용할 수 있습니다. Kort이 대답을하지만, 불행하게도이 경우 문제가 해결되지 않는

Here you can find a blog post about swapping EF metadata

+0

감사합니다. Sql Express를 사용하여 ssdl 파일의 정보와 연결 문자열을 변경했을 때 데이터를 쿼리 할 때 이상한 예외가 발생했습니다. Sql Ce를 사용하여 생성 된 엔티티 클래스는 Sql Server에서 생성 된 엔티티 클래스와 다릅니다. 위에서 언급 한 것처럼 자동 생성 된 엔티티 클래스를 살펴보면 두 클래스의 차이점을 많이 알 수있었습니다. – ArmenB

관련 문제