我正在阅读曼宁的《ASP.NET MVC 4实战》一书,并试图让第一个示例工作。
在我的测试应用程序中,我构建了一个简单的模型并创建了一些视图。然后使用NuGet导入了“SQL Server Compact”。
当我最终尝试运行应用程序时,我会收到以下错误:
Invalid value for key 'attachdbfilename'
我运行的每个与数据库交互(包括SELECT或其他CRUD操作)都会出现这种情况。有什么想法吗?
我正在阅读曼宁的《ASP.NET MVC 4实战》一书,并试图让第一个示例工作。
在我的测试应用程序中,我构建了一个简单的模型并创建了一些视图。然后使用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"
/>
Data Source=.\SQLEXPRESS; --> 有时会变成 Data Source=.; 之后,您需要配置正确的权限来访问文件夹 App_Data。 如果您在 Windows 7 上进行测试,请右键单击文件夹。属性 安全选项卡 -> 添加用户网络服务并赋予完全权限。
前往 Web.config 的相应部分并修改为以下内容,以使用 SQLServerCE4:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0"/>
</parameters>
</defaultConnectionFactory>
</entityFramework>
<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。
安装 VS 2010 SP1 Tools for SQL Server Compact。
将您的连接字符串更改为:
<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
\\MyServer\MyDBServer
是不允许的,必须使用MyServer\MyDBServer
语法来连接远程主机或者.\MyDBServer
语法来连接本地托管的数据库服务器。
数据源 = localhost \ SQLEXPRESS
更改并在 App_Data 文件夹属性的安全选项卡下添加具有完全控制权限的NETWORK SERVICE
用户,它对我起作用了。谢谢! - user1477388