2013-10-21 2 views
3

Nopcommerce에서 플러그인을 만들고 플러그인을 사용하여 데이터베이스 테이블을 만들었습니다.데이터베이스가 nopcommerce에서 생성 된 이후 'ObjectContext'컨텍스트를 지원하는 모델이 변경되었습니다.

해당 플러그인에서 나는 GetListByProductId (int id) & InsertItem (Item item) 메서드를 사용하고 있습니다.

나는이 방법을 아래와 같이 구현 :

 public void InsertItem(itemList item) 
     { 
      if (item == null) 
      { 
       throw new ArgumentNullException("itemlist"); 
      } 

      //Persist 
      _itemlistRepository.Insert(item); 
     } 


     public virtual ItemList GetListByProductid(int ProductId) 
     { 
      if (ProductId <= 0) return null; 

      return _itemlistRepository.GetById(ProductId); 

     } 

하지만 오류를 얻고는, "는 'ItemObjectContext'컨텍스트를 백업 모델이 변경되었습니다 데이터베이스가 생성 된 이후".

이 오류가 발생하는 이유와 그 원인을 이해할 수 없습니다.

누구든지이 문제를 해결할 수 있습니까?

모든 대답이 허용됩니다.

미리 감사드립니다.

+0

다음 링크를 확인할 수 있을까요? http://stackoverflow.com/questions/3600175/the-model-backing-the-database-context-has-changed-since-the-database-was-crea/13655533#13655533 – Max

+0

안녕하세요, 감사합니다.하지만 이미 추가했습니다. Database.SetInitializer (null); 내 Install() 및 UnInstall() 메소드 모두에서. –

+0

데이터 플러그인 생성에 대한 공식 문서를 살펴 보았습니까? http://www.nopcommerce.com/docs/75/plugin-with-data-access.aspx – Max

답변

2

나는 동일한 문제를 겪고 있습니다. 우리의 경우 기존 데이터베이스를 기반으로 코드 우선 디자인을 리버스 엔지니어링했습니다. 새로운 데이터베이스는 디자인의 향상을 겪고 있습니다.

일반적으로 데이터베이스 구조를 수정할 때 DB를 삭제 한 다음 코드에 의해 다시 생성해야합니다. 그런 다음 좀 더 구조 (아직 개발중인 모든)

너무 떨어/다시 만드는 것은 개발하는 동안 큰 고통이되고 변경, 데이터 마이그레이션을 시작할 때까지

이 모두 아주 잘 좋다.

이 문제를 해결하기 위해 수행 한 작업은 코드 우선 구현으로 생성 된 dbo.__MigrationHistory 테이블의 항목을 단순히 삭제하는 것입니다. 이 행에는 모델의 해시 된 버전이 포함되어 있으며, 내 이해에 따라 앱을 실행할 때 체크됩니다.

개발 중에도 나에게 맞는 것일 수도 있지만 맞지 않을 수도 있습니다.

+0

안녕하세요, 당신의 도움을 주신 Darren, 사실 저는 다른 솔루션을 찾았습니다. 그냥 Database.SetInitializer (null); 줄 내 서비스 파일의 생성자 및 문제가 해결됩니다. –

+0

아 좋아, 좋아. 실제로 이니셜 라이저를 설정해야 할 때 같은 문제가 발생하는지 확실하지 않았습니다. – Darren

관련 문제

 관련 문제