2012-06-07 5 views
0
그것은 예외가 발생
public ViewResult List(string category,int page = 1) 
    { 
     ProductsListViewModel viewModel = new ProductsListViewModel 
     { 
      Products = repository.Products 
      .Where(p => category == null || p.Category == category) 
      .OrderBy(p => p.ProductID) 
      .Skip((page - 1) * PageSize) 
      .Take(PageSize), 

      PagingInfo = new PagingInfo 
      { 
       CurrentPage = page, 
       ItemsPerPage = PageSize, 
       TotalItems = category == null?repository.Products.Count():repository.Products.Where(e => e.Category == category).Count() 
      }, 

      CurrentCategory = category 
     }; 
     return View(viewModel); 
    } 

가 있다고 개념적 모델 유형 찾을 수 없습니다 "SportsStore.Domain.Concrete.ORM.Product에 대한 개념 모델 유형을 찾을 수 없습니다를." 수동으로 추가하는 SportStore.edmx 파일과 관련이 있다고 생각하지만이 파일은 이미 존재하는 것처럼이 파일을 읽었을뿐입니다. 그래서 ORM을 직접 만들어야하는데 예외가 throw됩니다. 나는이 문제 (thx)를 검사하는 방법을 안다.엔티티 프레임 워크 오류 :

답변

0

나는이 책 (Pro Asp.Net MVC 3 Framework)을 통해서도 같은 오류/문제를 발견했다.

작성자가 ObjectContext에서 'DbContext'(또는 다른 방법으로)로 전환했으며 그의 예를 정리하지 않은 것처럼 보입니다. 전자는 EntityFramework 4.0의 이전 API이고 후자는 4.1의 API입니다. DbContext도 마찬가지로 ObjectContext의 래퍼이므로 동일한 작업을 수행합니다.

10 장의 코드 예제를 보면 그는 데이터베이스와 모델 간의 연결을 위해 Entity Data Model (.edmx)을 사용하는 것을 볼 수 있지만 책 전체에서 그는 '코드 첫 번째 접근 방식은 DbContext입니다.

9 장의이 섹션 중 하나만이 Concrete/ORM 폴더와 .edmx 모델에 언급 된 유일한 사실이라는 사실은 이것이 이전의 책 반복에서 남겨진 것이라는 더 많은 증거를 제공합니다.

요약 :이 .edmx 모델 파일이 필요하지 않으므로 개념 모델을 업데이트 할 필요가 없습니다. 프레임 워크는 코드의 Product 모델 조각을 데이터베이스의 Product 테이블에 연결할 수 있어야합니다. Using DbContext and Database First in EF 4.1

: 여기

몇 가지 통찰력을 제공 할 수있는 관련 질문