2014-10-13 2 views
0

asp.net mvc 4 entityframework, 단일 (Ioc) 및 작업 단위 (unit), 저장소 패턴을 사용하여 restaurent 예약 시스템을 구축 중입니다. 그래서 내가 2013 대에 솔루션에 4 프로젝트를 만들 :entityFramework n-tier 응용 프로그램과의 연결 DB

  • RestaurentSyeteme (웹 프로젝트 ASP.NET MVC 4)
  • RestaurentSystemeBusiness : 내가
  • RestaurentSystemeDAL이 계층에서 비즈니스 로직을 넣어 : 데이터 액세스, entityFramework, 저장소 및 상황에
  • RestaurentSystemeDomain :

    : 여기

내 dbContext의 코드 내 실체

public class RestaurentDbSystem : UnitOfWork 
{ 

    public RestaurentDbSystem(string nameOrConnStr) 
     : base(nameOrConnStr) 
    { 

    } 
} 

여기에서의 UnitOfWork : 여기에

private static IUnityContainer BuildUnityContainer() 
    { 
     var container = new UnityContainer(); 

     // register all your components with the container here 
     // it is NOT necessary to register your controllers 

     container.RegisterType<IUnitOfWork, RestaurentDbSystem>(new PerHttpRequestLifetime(), 
      new InjectionConstructor("RestaurentDbSystem")); 

     // e.g. container.RegisterType<ITestService, TestService>();    
     container.RegisterType<IClientService, ClientService>(); 
     container.RegisterType<IClientRepository, ClientRepository>(); 
     container.RegisterType<IRepository<User>, Repository<User>>(); 
     container.RegisterType<IRepository<UserType>, Repository<UserType>>(); 
     return container; 
    } 

내가

을 ConnectionString을 config (설정) 내 Web.config의에 무엇을 넣어 : 여기
public class UnitOfWork : DbContext, IUnitOfWork 
    { 
     public UnitOfWork(string nameOrConnString) 
       : base(nameOrConnString) 
     { 

     } 
    } 

내 컨테이너 (유니티)를 구성하는 코드입니다
<add name="RestaurentDbSystem" 
    connectionString="Data Source=LMA000049\mssqlserver; 
    Initial Catalog=RestaurentSystemDb;Integrated Security=true" 
    providerName="System.Data.SqlClient" /> 

이름이 'RestaurentSystemDb'인 데이터베이스를 만들었습니다.

problme는 응용 프로그램을 실행할 때이 예외가있다 :

형 'System.Data.ProviderIncompatibleException'의 예외가 EntityFramework.dll 발생하지만, 사용자 코드에 처리되지

public class RestaurentDbSystem : UnitOfWork에서
+0

예외 텍스트가 누락되었습니다. – SDwarfs

+0

예외는 * much * 이상을 알려줄 것입니다. 이러한 세부 사항없이 오류를 분석하는 것은 불가능합니다. –

답변

0

RestaurentDbSystem을에

RestaurentSystemDb

나는이 둘이 일치해야한다고 생각한다.

일반적으로 코드가 같지 않은 경우 코드 첫 번째는 SQL Express에서 데이터베이스를 만들려고합니다.

+0

데이터베이스의 이름을 변경 했으므로 초기 카탈로그 : RestaurentDbSystem 이었지만 여전히 문제가 있습니다. – ucef