我目前正在阅读 Manning 的“ASP.NET MVC 4 in Action”一书,并试图让第一个示例工作。
在我的测试应用程序中,我构建了一个简单的模型并创建了一些视图。然后我使用 NuGet 导入了“SQL Server Compact”。
当我最终尝试运行应用程序时,出现以下错误:
Invalid value for key 'attachdbfilename'
这发生在与我正在运行的数据库(SELECT 或其他 CRUD 操作)的每次交互中。有任何想法吗?
我目前正在阅读 Manning 的“ASP.NET MVC 4 in Action”一书,并试图让第一个示例工作。
在我的测试应用程序中,我构建了一个简单的模型并创建了一些视图。然后我使用 NuGet 导入了“SQL Server Compact”。
当我最终尝试运行应用程序时,出现以下错误:
Invalid value for key 'attachdbfilename'
这发生在与我正在运行的数据库(SELECT 或其他 CRUD 操作)的每次交互中。有任何想法吗?
虽然,我回答这个问题有点晚了,但我遇到了同样的问题,我通过修改下面的连接字符串解决了这个问题
<add name="MovieDBContext"
connectionString="Data Source=.;Initial Catalog=Movies;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
希望这对其他人也有帮助。
我认为这里的问题是 web.config 中的字符串不正确根据您设置的 sql,如果您设置类似这样的内容,该字符串将起作用
<add name="MovieDBContext"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Movies;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
数据源=.\SQLEXPRESS; --> 有时,它会是 Data Source=.; 之后,您需要配置权限才能访问 Folder App_Data 如果您在 Window 7 上进行测试,请右键单击文件夹。属性安全选项卡-> 添加具有完全权限的用户网络服务
转到 Web.config 部分并将该部分修改为以下内容以获取要使用的 SQLServerCE4:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0"/>
</parameters>
</defaultConnectionFactory>
</entityFramework>
我猜只有在 .NET Framework v4.0.30319 上使用 SQL Express 时才会出现问题,无论如何在 .NET Framework 更新 4.0.2 中添加了 SqlClient 中的 SQL Server Express 本地数据库运行时支持 - http://support.microsoft.com/kb/ 2544514
交替使用与此类似的连接字符串
<add name="EmployeeDbContext" connectionString="Data Source=.;Initial Catalog=Employees;AttachDBFileName=|DataDirectory|\Employees.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="myconstr" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|mydata.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
上面的连接字符串给出了一个错误,但只要在我的数据库名称之前添加“\”,错误就得到了解决。
试试这个:
<add name="myconstr" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\mydata.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
您正在使用 SQL Server Compact 4.0:
确保您已安装 SQL Server Compact 4.0。
为 SQL Server Compact安装VS 2010 SP1 工具。
将连接字符串更改为:
<connectionStrings>
<add name="MyModelDBContext" connectionString="Data Source=|DataDirectory|mymodel.sdf" providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
右键单击控制器文件夹并 -> 添加 -> 控制器
类型:
YourController
MVC-Controller with read/write ...
MyModel
new datacontext -> APP.Models.DatabaseContext
面对同样的问题,我查看了我的连接字符串,发现“UNC 样式”路径\\MyServer\MyDBServer
是不允许的,必须使用MyServer\MyDBServer
远程主机的语法或.\MyDBServer
本地托管的数据库服务器的语法。