ArgumentException ao criar instância de objecto que herda ObjectContext
-
10-07-2019 - |
Pergunta
Estou vagamente depois de um excelente série de posts por Kazi Manzur Rashid como um exercício de aprendizagem para aprender a implementar alguns novos padrões de projeto (pelo menos para mim), mas eu estou recebendo problemas desde o início.
Eu basicamente copiou seu código para as classes Database
, RepositoryBase
e RepositoryBaseTests
, mas quando tento executar os testes, eu recebo uma mensagem de erro dizendo
Não é possível criar instância de Booking.Infrastructure.EntityFramework.Repositories.Tests.RepositoryBaseTests classe. Erro: System.Reflection.TargetInvocationException: exceção foi acionada pelo destino de uma chamada. ---> System.ArgumentException: formato da seqüência de inicialização não está de acordo com a especificação iniciando no índice 0 ..
Através do depurador eu ter verificado que a exceção é lançada sobre o construtor para a classe Database
, que tem esta aparência:
public Database(
IConfigurationManager configurationManager,
string connectionstringName)
: base(
GetConnectionString(configurationManager, connectionstringName),
"BookingEntities")
{ // Nothing happens here }
O erro é lançado ao chamar o construtor base
, e se eu tivesse codificar os valores que atualmente estou enviando em, ele ficaria assim:
: base("Dummy connStr", "BookingEntities")
Por que isso não funciona?
Solução
"Manequim connstr" não é uma cadeia de conexão EF válido.
A válido seqüência de conexão EF parece com:
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""