【问题标题】:EF 6 Code First : "CREATE DATABASE permission denied in database 'master'." on existing databaseEF 6 代码优先:“数据库‘主’中的创建数据库权限被拒绝。”在现有数据库上
【发布时间】:2016-12-11 15:17:21
【问题描述】:

我的 EF 模型遇到了一些问题。

历史:几年前我的应用发布到生产环境时,我的 EF 模型是通过模型优先 (edmx) 技术创建的。我使用我的 SQL SERVER db 在生产服务器上运行良好。

现在我正在对我的应用程序进行一些改进,我决定放弃模型优先技术,继续使用代码优先技术。它在我的本地主机上运行良好,但是当我发布我的我的生产服务器上的新应用版本,当我的应用尝试使用该模型时,我收到以下消息:

数据库“master”中的 CREATE DATABASE 权限被拒绝。

但我不明白...我的数据库仍然存在于我的生产服务器上(几年以来)。为什么 EF 想要创造一些东西?有什么问题?

提前感谢您的回答。

编辑:

总结:

  • 对于同一服务器上的同一数据库
  • 对于相同的连接字符串
  • 对于相同的 EF 版本 (6)
  • 使用 Model First 的应用可以正常运行
  • 带有 Code First 的应用程序抛出异常数据库“master”中的 CREATE DATABASE 权限被拒绝。

但数据库已经存在。为什么会出现这个错误?为什么code first版本会尝试创建数据库?

【问题讨论】:

  • 不。我的问题不同:在 Model First 中有效,但在 Code First 中无效。
  • 同样的问题。最后,数据库创建是 SQL。 SQL 来自哪里并不重要。
  • 不是同一个问题。请注意,我的数据库已经存在,那么 EF 为什么要创建它?请注意,它适用于同一服务器、同一数据库和同一用户上的 Model First EF 模型。
  • 您是否按照链接中的说明检查了您的连接字符串?

标签: sql-server database entity-framework ef-code-first ef-model-first


【解决方案1】:

检查一下

https://stackoverflow.com/a/19198471/8186328

确保您的连接字符串名称与您的 dbContext 的基本构造函数名称相同

【讨论】:

  • 嗨 dlogon,OP 表示这个问题与他们的问题不同(回复:cmets)。您是否可以添加其他内容来区分您的答案与链接到的答案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-19
  • 1970-01-01
  • 2016-04-24
相关资源
最近更新 更多