我有一个像这样的 VS 2012 解决方案设置:
在开发过程中,我想使用 LocalDB 作为 EF 的后备数据库。 MVC 和 WCF 项目都使用 EF 模型来访问数据库中的数据。我想在所有项目(MVC、WCF 和测试)中共享相同的 LocalDB 实例,但似乎无法正确设置 web.config。
我还希望这个项目设置可以在开发人员机器之间移植,IE 没有绝对路径。
测试项目创建并使用 c:\users\\.mdf 中的数据库。 MVC 和 WCF 项目希望文件驻留在 AppData 文件夹中。我一直在根据需要手动复制它,但很明显,随着应用程序更改数据,它们变得不同步。
关于如何配置项目以使用相对路径共享相同实例的任何建议或示例?
最佳答案
把 minhcat_vo 的例子放在一起让我想出了一个解决方案。
当您没有指定与 DbContext 派生类型的名称(或您设置为注释的任何内容)匹配的显式连接字符串时,我遇到的问题就发生了。项目类型之间的行为不同:
在将我的 EF 项目移至 MySQL 时,我偶然发现了该解决方案。 MySQL EF 提供程序在任何情况下都不会回退到 DefaultConnection 连接字符串(我猜除非您的 DbContext 明确选择了它)。为了让 MySQL-EF 工作,我必须输入一个与上下文匹配的连接字符串。这让我找到了我正在寻找的答案。通过对我的所有项目使用以下连接字符串,它们都共享相同的 MDF 文件/LocalDB 实例:
<add name="ThingsContext" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=Things;Integrated Security=SSPI" />
其中 ThingsContext 是我项目的 DbContext 实例。你可以看到我的示例解决方案@ https://github.com/drdamour/SharedLocalDB
关于.net - 如何在解决方案中的所有项目之间共享 LocalDB 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15960535/