在Ruby中(特别是在Rails中)工作时,我可以使用测试数据库自动运行测试,还可以在开发或生产数据库之间轻松选择。实体框架(WPF)仍然是新事物,但似乎并不简单。

我的实体程序集具有一个App.Config文件,该文件包含对数据库的引用,我需要将此App.Config文件复制到所有可运行的项目(例如问题11133612233897)。

如果我使用Test-> Database Test Configuration而不从我的EF项目中显式复制App.Config,我会得到


  System.ArgumentException:
  指定的命名连接为
  在配置中找不到,没有
  旨在与
  EntityClient提供者,或无效。


这与我缺少或不同的App.Config文件相同。

奇怪的是,即使我确实将Entity项目和测试项目中的所有连接字符串都更改为同一数据库,我仍然会收到该错误。

告诉Visual Studio(2010 Ultimate)我希望我的测试使用其他测试数据库运行时,我是否缺少步骤,或者EF 4是否不支持此步骤?

此外,除了来回复制App.Config文件之外,是否有其他方法可以更改数据库上下文?好像是一种忽略关注点分离的严肃方法,所以我认为我缺少了一些东西。

最佳答案

奇怪的是,当我这样做之后,它开始起作用。有人可能对此发表评论,但似乎我在错误的时间使用了Test-> Database Test Configuration。

以机智:

清理项目,没有App.Config,使用Test-> Database Test Configuration设置测试数据库。它生成一个app.config(特别是小写)。你得到一个错误。即使您检查所有连接字符串(奇怪)

清理项目,首先从您的实体项目中复制App.Config。现在,当您使用Test-> Database Test Configuration时,它将填充您复制的App.Config,并且可以正常工作。

我想这是我在复制连接字符串时创建的一些问题。

我还确认了这适用于使用“主”数据库的实体项目,而我的测试项目使用“测试”数据库。

想知道有人可以确认/澄清吗?

关于database - 在 Entity Framework 中使用测试/开发/生产数据库策略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4571714/

10-16 18:56