我们的小组有一个现有的应用程序app1
,由离开公司的人编写。我们希望构建一个类似的应用程序app2
,具有类似的后端,希望将来合并这两个应用程序。
我目前正在尝试了解app1的工作原理,并且我在本地运行时难以确定如何指定与本地数据库的连接。通常,人们会期望web.config文件通过connectionStrings
指定要连接的数据库,但app1不是这种情况。标签中没有包含任何元素:
<connectionStrings>
</connectionStrings>
我已经验证应用程序创建并使用位于sql server 2008 r2(.\SQLExpress
)的本地实例中的数据库。但是,在使用类似配置的app2上工作时,它会在App_Data
目录中创建一个.mdf文件。我找不到任何告诉app1使用.\sqlexpress
的内容。如何将app2配置为与app1类似?
答案 0 :(得分:0)
我遇到了类似的问题。我得到了像底层提供商无法打开的错误。 那时我所做的只是右键单击本地数据库并修改了我的连接,即数据源。
示例:您必须显示当前.MDF文件位置的路径。最好放在app_data中。
从那时起,一切都很酷
我可以帮助你的任何事情请告诉我。
问候
答案 1 :(得分:0)
我已经弄清楚了。
事实证明,EF会根据您机器上的可用内容更改您的web.config。当我创建app2
时,我当时没有安装本地数据库引擎.\sqlexpress
。在这种情况下,EF create会在web.config中添加以下内容:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
</entityFramework>
创建app2
后的一段时间,我安装了一个本地数据库。来自新应用程序app3
的web.config文件包含此内容:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<entityFramework>
此外,app1
没有这些,所以它似乎默认为后一种行为。
在创建项目时看起来我的问题归因于我的机器配置。