2009-09-18 4 views
0

새로운 디자인 패턴을 구현하는 방법을 배우기위한 연습으로 excellent series of blog posts by Kazi Manzur Rashid을 느슨하게 따르고 있지만 처음부터 문제가 있습니다.ObjectContext에서 상속 한 객체의 인스턴스를 생성 할 때 ArgumentException을 발생했습니다.

나는 기본적으로 Database, RepositoryBaseRepositoryBaseTests 클래스에 대한 자신의 코드를 복사 한,하지만 테스트를 실행하려고 할 때, 나는 것을 확인했다 디버거를 통해

Unable to create instance of class Booking.Infrastructure.EntityFramework.Repositories.Tests.RepositoryBaseTests. Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Format of the initialization string does not conform to specification starting at index 0..

를라는 오류 메시지가 얻을 예외는 다음과 같이 보이는 Database 클래스의 생성자에 발생합니다 :

public Database(
    IConfigurationManager configurationManager, 
    string connectionstringName) 
: base(
    GetConnectionString(configurationManager, connectionstringName), 
    "BookingEntities") 
{ // Nothing happens here } 
base 생성자를 호출 할 때 오류가 발생합니다

, 나는 열심히했다면 현재 보내고있는 값은 다음과 같습니다.

: base("Dummy connStr", "BookingEntities") 

왜 작동하지 않습니까?

답변

0

"Dummy connStr"은 유효한 EF 연결 문자열이 아닙니다.

connectionString="metadata=res://*/Data.Model.csdl|res://*/Data.Model.ssdl|res://*/Data.Model.msl;provider=System.Data.SqlClient;provider connection string="Data Source=SERVERNAME\SQLDEV2008;Initial Catalog=DBName;Integrated Security=True;MultipleActiveResultSets=True"" 
+0

OK :

유효한 EF 연결 문자열은 같습니다. 글쎄, 나는 연결 문자열이 유효하지 않다고 생각할 수 있지만, 필자는 어쨌든이 기사의 예제에서와 같이해야한다고 생각했다. 어쨌든 데이터베이스를 아직 설정하지 않았으므로 제공 할 연결 문자열이 없습니다. 거기에 모든 필요한 부분을 가지고 있지만 실제로 아무것도하지 않는 더미 문자열을 구축하는 (쉬운) 방법이 있습니까? –

+0

Northwind.mdb 또는 다른 데모 DB를 사용하십시오. –

+0

문제는 내가 저장소에서 단위 테스트를하고 있다는 것입니다. 데이터베이스에 연결하고 싶지 않습니다. 단지 저장소가 올바른 'Database' 개체를 가져 오는 것을 확인하십시오. –

관련 문제