2014-05-12 2 views
7

이 오류가 발생합니다. Could not load type 'System.ComponentModel.DataAnnotations.Schema.IndexAttribute' ERROR'System.ComponentModel.DataAnnotations.Schema.IndexAttribute'형식을로드 할 수 없습니다.

ApplicationDbContext는 계정 섹션에서 사용되는 자동 생성 DbContext입니다. 계정 컨트롤러 동작을 사용하려고 할 때마다이 오류가 발생합니다. 오류는 내가 잘 작동하고 필요한 모든 데이터를 얻을 내 자신의 DbContext이

public AccountController() 
      : this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()))) 
     { 
     } 

에서 유래.

참조 정보는 문제가 없습니다. 이 문제를 어떻게 해결합니까?

업데이트 업데이트 된 Refrences를 AspNet.Identity에 사용했습니다. 문제가 발생 했나요?

업데이트 2 두 개의 멤버 자격 공급자 버전을 혼합했을 때이 오류가 발생했습니다. 먼저 MVC 5에 제공된 기본값을 사용하고 MVC 3 멤버십을 사용하려고 시도한 다음 다시 MVC 5로 돌아갔습니다. 그런 다음이 오류가 팝업되기 시작했습니다.

아직이 문제에 대한 해결책을 찾지 못했습니다. 그러나 해결 방법으로 프로젝트를 이전의 모든 파일로 다시 만들면 효과가있었습니다.

+0

안녕하세요, 위의 해결 방법이 있습니까, 내가 동일한 문제가 – Eldho

+0

어떤 해상도? 나는 또한 같은 문제가있다. – spadelives

+0

나는 실제로 동일한 파일 (모델, 컨트롤러, 뷰)을 사용하여 프로젝트를 재현했으며 효과가있었습니다. 실제 해결책을 찾지 못했습니다 :/ – Ruchan

답변

10

을 편집 .csproj 파일 및 올바른 엔티티 프레임 워크 버전 경로 (현재 최신 안정 버전은 6.1.2이다)와 <HintPath> 값 대체 :

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.dll</HintPath> 
</Reference> 
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.SqlServer.dll</HintPath> 
</Reference> 

경로가 존재하는지 확인;을 그렇지 않다면 원하는 버전의 Nuget 패키지를 설치하십시오.

<HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.dll</HintPath> 

<HintPath>..\packages\EntityFramework.6.1.2\lib\net45\EntityFramework.dll</HintPath> 

다음은 주요 버전 6.0.0.0으로 설정 남겨주세요 :

명확하게하기 위해, 이들은 현재 버전을 확인하기 위해 편집 할 <HintPath> 요소는 다음과 같습니다

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> 

그리고

<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> 
+0

가장 최근의 EF 6을 사용한다면 사실 6.1.3이다. –

+0

Visual Studio (2015) 메뉴에서 : 도구 -> Nuget 패키지 관리자 -> 솔루션을위한 너겟 패키지 관리 ... 개요가 있습니다. 필자의 경우, 왼쪽 패널의 Entity 프레임 워크를 선택하고 한 프로젝트에서 이전 버전의 EF를 사용하는 것을 즉시 보았습니다. 어느 누구도 범인이었다. – LosManos

0

테스트 프로젝트에서 비슷한 오류가 발생했습니다. 두 프로젝트 모두 엔티티 프레임 워크 6.0.0.0에 대한 참조가 있습니다. 필자는 테스트 프로젝트에서 엔티티 프레임 워크에 대한 참조를 제거하고 추가함으로써이를 해결할 수있었습니다.

관련 문제