2011-05-09 4 views
2

기존 DB가 있으며 먼저 POCO 개체를 테이블에 매핑하기 위해 EF 4.1 코드를 사용했습니다. 하지만 난이 오류 :EF 4.1 기존 데이터베이스의 코드 우선

나는 여전히 날 같은 오류를 제공하는 OnModelCreating 방법 추가 만 가지고 있지만

EF 4.1 Error Model compatibility cannot be checked because the EdmMetadata type

:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{  
    modelBuilder.Conventions.Remove<IncludeMetadataConvention>(); 
} 

내 POCO와 DB 테이블 정확히 동일합니다.

답변

2

데이터베이스가 존재하지만 EF CodeFirst를 사용하여 데이터베이스를 만들려고한다는 것이 문제인 것처럼 보입니다. 데이터베이스를 삭제하면이 작업이 실행되어 데이터베이스와 테이블이 생성됩니다. 다음은이 문제를 가진 사람에 대한 링크입니다 그것은 그들이 그것을 해결하는 방법이다 : 당신은 당신의 기존 데이터베이스를 사용하고자하는 경우

http://forums.asp.net/t/1673379.aspx/1?Unable+to+generate+Edm+Metadata+table+at+runtime+from+EF+code+first+model

(경우에 당신은 다른 데이터를했다), 난 당신을 생각 코드 첫 번째가 기대하는 것을 수정해야합니다.

Entity Framework CTP 4 - Code First Custom Database Initializer

답으로 인정조차 사람들은 당신이 할 수있는 일에 대한 몇 가지 좋은 정보를 가지고 있기 때문에 당신은 모든 게시물을 읽을 수 있는지 확인 : 다음은이 작업을 수행하는 방법에 대한 SO 기사입니다.

+0

BiggsTRC에게 감사드립니다. 데이터베이스를 삭제하는 것이 효과가있는 것으로 보입니다. EF를 사용하여 DB를 만든 다음 기존 데이터베이스 테이블에서 데이터를 이동했습니다. – Shuaib

+2

실제로이 문제를 해결 한이 블로그 게시물을 발견했습니다. 열쇠는 컨텍스트를 초기화하는 것이 었습니다 : Database.SetInitializer (null); http://agilenet.wordpress.com/2011/04/11/entity-framework-4-1-rc-with-an-existing-database/ – Shuaib

+0

@Shuaib - 좋습니다! 다행히 해결책을 얻었습니다. 솔루션을 제공해 주셔서 감사합니다. – IAmTimCorey

관련 문제