Entity framework 创建从ObjectContext继承的对象实例时发生ArgumentException

Entity framework 创建从ObjectContext继承的对象实例时发生ArgumentException,entity-framework,inheritance,constructor,objectcontext,Entity Framework,Inheritance,Constructor,Objectcontext,我松散地遵循一个作为学习练习,学习如何实现一些新的,至少对我来说是设计模式,但我从一开始就遇到了麻烦 我基本上复制了他的数据库、RepositoryBase和RepositoryBaseTests类的代码,但是当我尝试运行测试时,我收到一条错误消息说 无法创建Booking.Infrastructure.EntityFramework.Repositories.Tests.RepositoryBaseTests类的实例。错误:System.Reflection.TargetInvocationE

我松散地遵循一个作为学习练习,学习如何实现一些新的,至少对我来说是设计模式,但我从一开始就遇到了麻烦

我基本上复制了他的数据库、RepositoryBase和RepositoryBaseTests类的代码,但是当我尝试运行测试时,我收到一条错误消息说

无法创建Booking.Infrastructure.EntityFramework.Repositories.Tests.RepositoryBaseTests类的实例。错误:System.Reflection.TargetInvocationException:调用的目标已引发异常。-->System.ArgumentException:初始化字符串的格式不符合从索引0开始的规范

通过调试器,我验证了数据库类的构造函数是否引发了异常,如下所示:

public Database(
    IConfigurationManager configurationManager, 
    string connectionstringName)
: base(
    GetConnectionString(configurationManager, connectionstringName), 
    "BookingEntities")
{ // Nothing happens here }
: base("Dummy connStr", "BookingEntities")
调用基构造函数时会引发错误,如果我硬编码当前发送的值,则会出现如下情况:

public Database(
    IConfigurationManager configurationManager, 
    string connectionstringName)
: base(
    GetConnectionString(configurationManager, connectionstringName), 
    "BookingEntities")
{ // Nothing happens here }
: base("Dummy connStr", "BookingEntities")

为什么不起作用?

Dummy connStr不是有效的EF连接字符串

有效的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""

好啊嗯,我可以看出连接字符串不是有效的,但我认为它应该像本文中的示例那样工作。无论如何,我还没有建立数据库,所以我没有提供连接字符串。有没有什么简单的方法可以构建一个包含所有必要部分但实际上不会做任何事情的伪字符串?只需使用Northwind.mdb或其他演示数据库。问题是我这样做是为了对我的存储库进行单元测试-我根本不想连接到数据库,只要确保存储库从数据库对象中获取正确的内容,EF就不会连接,除非您执行一些需要它的操作,例如新建ObjectContext并选择一些内容。使用SQL Server Profiler来证明这一点。