我有一个 VS 2012 解决方案设置如下:
- EF 模型项目
- EF模型测试项目
- ASP.NET MVC 4 应用程序
- WCF数据服务项目
在开发过程中,我想使用 LocalDB 作为 EF 的后备数据库。 MVC 和 WCF 项目都使用 EF 模型来访问数据库中的数据。我想在所有项目(MVC、WCF 和测试)中共享相同的 LocalDB 实例,但似乎无法正确设置 web.config。
我还希望这个项目设置能够跨开发人员机器移植,IE 没有绝对路径。
测试项目创建并使用 c:\users\\.mdf 中的数据库。 MVC 和 WCF 项目希望该文件驻留在 AppData 文件夹中。我一直在根据需要手动复制它,但显然,当应用程序更改数据时,它们就会不同步。
有关如何配置项目以使用相对路径共享同一实例的任何建议或示例?
将 minhcat_vo 的示例放在一起让我找到了解决方案。
当您没有指定与 DbContext 派生类型的名称(或您设置为注释的任何内容)匹配的显式连接字符串时,我遇到的问题发生了。项目类型之间的行为有所不同:
- 在测试项目中,它使用本地数据库目录以及 DbContext 的 FQDN 和位于 \\.mdf 的 MDF 文件。
- 在 ASP.NET MVC 项目中,它尝试从 \app_data\.mdf 加载 mdf
我在将 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 https://github.com/drdamour/SharedLocalDB
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)