我有一个像这样的VS 2012解决方案:
在开发期间,我想使用LocalDB作为EF的后备数据库。 MVC& WCF项目都使用EF模型来访问数据库中的数据。我想在所有项目(MVC,WCF和测试)中共享相同的LocalDB实例,但似乎无法正确设置web.config的设置。
我也希望这个项目设置可以在开发人员机器上移植,IE没有绝对路径。
测试项目创建&适用于c:\ users \\。mdf中的数据库。 MVC& WCF项目希望该文件驻留在AppData文件夹中。我已根据需要手动复制它,但很明显,当应用程序更改数据时,它们会不同步。
有关如何配置项目以与相对路径共享同一实例的任何建议或示例?
答案 0 :(得分:1)
将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" />
WhereContext是我项目的DbContext实例。您可以看到我的示例解决方案@ https://github.com/drdamour/SharedLocalDB
答案 1 :(得分:0)
我想在所有项目(MVC,WCF和测试)中共享相同的LocalDB实例,但似乎无法正确设置web.config的设置
这可能是你的连接字符串问题。
有关如何配置项目以与相对路径共享同一实例的任何建议或示例?
是的,您可以在每个项目的web.config中使用相对路径。但是,您可以使用 ConfigurationManager 来处理它。
答案 2 :(得分:0)
我可能错了,一个localDB一次只能访问一个应用程序。如果您希望同时由多个应用程序访问一个数据库,请将LocalDB附加到快速版SQL服务器。使用表单身份验证为每个应用程序创建快速用户。使用用户名和密码更改ConnectionString以表示sql。你很高兴。