2012-12-11 7 views
1

방금 ​​WebMatrix에서 작업하기 시작했습니다. 기본을 배우기 위해 this 자습서를 작성한 다음 this으로 시작했는데 WebMatrix에서 Entity Framework를 시작했습니다. (참고 :이 자습서는 WebMatrix 용입니다. 1,하지만 당신이 당신의 프로젝트에 도우미를 설치하는 방식이 바뀌었다.) 것은, Entity Framework 도우미를 설치했지만, 내 프로젝트가 EntityFramework.dll을 인식하지 못합니다.WebMatrix 2가 EntityFramework 도우미를 인식하지 못함

이 오류가 발생합니다. The type or namespace name 'MaxLength' could not be found (are you missing a using directive or an assembly reference?). 그러나 EntityFramework.dll이 내 bin 폴더에 표시됩니다. 어떻게됩니까? 나는 왜 참조가 작동하지 않는지 이해하지 못한다.

이것은 두 번째 튜토리얼에와 EntityFramework 도우미를 설치 한 후 따라 내 Web.config 파일 :

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    </configSections> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"><assemblies><add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /><add assembly="System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /></assemblies></compilation> 
    </system.web> 
    <connectionStrings> 
    <add name="BookContext" connectionString="Data Source=|DataDirectory|Books.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
    </connectionStrings> 
</configuration> 

link

내가 뭔가를 놓치고 있습니까 컴파일러의 출력은? 내 프로젝트에서 EntityFramework.dll이 제대로 인식되지 않는 이유는 무엇입니까?

UPDATE

내가 비주얼 스튜디오 2012에서 만든 웹 페이지의 프로젝트에서 EntityFramework.dll를 복사 할 때 문제가 해결되었다 생각하지만, 오류가 더 이상 표시되지 않은 경우에도, WebMatrix는 아직하지 않습니다

나는 정말로 이해하지 못한다. 간단한 데이터베이스가 생성되었지만 EntityFramework 어노테이션을 사용하여 데이터베이스에 필요한 모든 것을 지정할 수는 없다. WebMatrix는 EntityFramewor.dll을 인식해야하지만 그렇지 않습니다. 나는 정말로 잃어 버렸기 때문에 나는이 도움을 필요로한다.

+0

MaxLengthAttribute는 System.ComponentModel.DataAnnotations.dll 어셈블리에 있습니다. http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.maxlengthattribute.length.aspx – Pawel

+0

Entity Framework에도 MaxLengthAttribute가 있습니다. http://msdn.microsoft.com/en-us/ library/system.componentmodel.dataannotations.maxlengthattribute % 28v = 1010 % 29.aspx –

+0

예, EntityFramework에 살았지 만 System.ComponentModel.DataAnnotations – Pawel

답변

2

표시되는 오류는 사이트에 설치된 EntityFramework 버전의 최종 결과입니다.

EntityFramework 5.0 패키지는 프로젝트가 대상으로하는 .NET (4.0 또는 4.5) 버전에 따라 EntityFramework.dll의 버전 4.4 또는 5.0을 설치합니다.

내 경험에 따르면, WebMatrix의 NuGet 갤러리에서 EntityFramework를 설치하면 항상 EntityFramework.dll의 버전 4.4가 bin 폴더에 복사됩니다. 속성 -> EntityFramework.dll 파일의 세부 정보를 확인할 수 있습니다.

내가 아는 유일한 해결책은 VisualStudio Express 또는 다른 독립 실행 형 유틸리티 (이 게시물을 보시려면 Install Entity Framewok v5 in Webmatrix 2 RC)를 사용하여 EntityFramework v.5.0을 다운로드하고 WebMatrix의 NuGet 갤러리가 설치 한 dll을이 파일로 교체하기 만하면됩니다. EntityFramework의 V.5.0 및 WebMatrix 실험

UPDATE

다른 문제 유형 'System.Data.EntityState가'을 참조되지 않은 어셈블리에 정의되어 있고 그 는 사용을 필요 DataAnnotations.Schema에 대한 지시문.

첫 번째 문제는 웹에 다음 참조를 추가하여 해결되었습니다.설정은 (Could not load file or assembly 'System.Data.Entity보고) :

<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 

두 번째 문제는 코드에 대한 지침

using System.ComponentModel.DataAnnotations.Schema; 

의 추가를 필요로한다.

어쨌든 WebMatrix는 EntityFramework를 기반으로하는 사이트를 개발하는 데 적합한 도구가 아닙니다.

+0

Visual Studio에서 프로젝트를 작성하고 EntityFramework.dll을 패키지 폴더에서 EntityFramework.5.0.0 폴더 안에 복사했습니다. lib 폴더를 발견했으며 그 안에 두 개의 폴더가 더 있습니다. 하나는 net40이고 다른 하나는 net45입니다. net45 폴더에서 dll을 WebMatrix 프로젝트로 복사했는데 오류가 표시되지 않지만 데이터베이스가 만들어지지 않고 EntityFramework 속성이 인식되고 있습니다 (일반 속성처럼 강조 표시되지 않음). 다른 항목이 누락 되었습니까? –

+0

수동으로 어딘가에 참조를 추가해야합니까? [this] (http://i.imgur.com/R3kgV.png)는 dll이 인식되지 않고, dll의 나머지 부분이 인식되는 동안 내가 말하고있는 것입니다. EF dll은 ' 그들 중 하나, 튜토리얼에 따르면, 내가 빈 cshtml을 실행할 때 App_Data 폴더에 databse가 생성되어야하지만 이미지에서 볼 수 있듯이 데이터베이스가 생성되지 않았다. 그래서 내가 추가해야하는지 묻는 것이다. 다른 곳의 참조. 도와 주셔서 감사합니다. –

+0

사이트를 실행할 때 데이터베이스가 생성되지 않았습니까? 브라우저에서 Brind의 기사에서와 같은 출력이 표시되고 예외가 발생하지 않으면 데이터베이스는 App_Data 폴더에 있습니다. 폴더 트리를 새로 고쳐야 볼 수 있습니다. – GmG

관련 문제