gpt4 book ai didi

c# - 首先附加现有数据库 Entity Framework 代码时出错

转载 作者:太空宇宙 更新时间:2023-11-03 15:25:08 25 4
gpt4 key购买 nike

我在 ASP.NET MVC 5 中使用 Entity Framework 6 代码优先创建了一个应用程序,然后将其部署到我的服务器。一切正常,除了涉及数据库使用的操作/ Controller 操作。

我正在从我的计算机上传一次生成的数据库文件到服务器的 App_Data 文件夹。

部署后,我将 web.config 文件中的连接字符串更改为:

connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-NERC_Main-20160104065223.mdf;Initial Catalog=aspnet-NERC_Main-20160104065223;Integrated Security=True"

connectionString="Data Source=.;AttachDbFilename=|DataDirectory|\aspnet-NERC_Main-20160104065223.mdf;Initial Catalog=aspnet-NERC_Main-20160104065223;Database=aspnet-NERC_Main-20160104065223.mdf;Trusted_Connection=Yes;Integrated Security=True;"

抛出错误

CREATE DATABASE permission denied in database 'master'.

一个可能的原因是当前的数据库文件没有被附加, Entity Framework 正试图在其他受限目录中生成一个新的数据库。

我读到 AttachDbFileName 仅对 SQL Server Express 实例有效,在我的例子中它不存在。

如何修改连接字符串以便使用我当前已上传的数据库。

注意:

远程服务器已完整安装 SQL Server 2008 R2。服务器不支持用户实例。我的数据库没有密码保护,因此我将 Integrated Security 属性值设置为 True。如果需要,我会提供任何其他信息。

最佳答案

如果您有完整版的 SQL Server,则不能只使用 AttachDbFileName。相反,您需要将 .mdf(和 .ldf)复制到 SQL Server 数据文件位置,然后您需要附加数据库在 SQL Server Management Studio 中添加到服务器实例。

从那时起,您可以使用服务器名称和逻辑数据库名称在连接字符串中引用该数据库 - 如下所示:

Server=.;Database=aspnet-NERC_Main-20160104065223;Integrated Security=True;

根据您的数据库设置,您可能会或可能不会使用 Integrated Security - 也许您需要有一个特定的 SQL Server 登录名并指定该登录名(及其密码)在您的连接字符串中:

Server=.;Database=aspnet-NERC_Main-20160104065223;User ID=YourUserName;Password=YourPassword

参见 this site here有关如何为 SQL Server 构建有效连接字符串的大量示例。

关于c# - 首先附加现有数据库 Entity Framework 代码时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35667567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com