【发布时间】: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