【发布时间】:2012-08-09 21:56:21
【问题描述】:
我是一个 asp mvc 3 noobie。我已经完成了一些tutorials,现在我准备通过尝试建立一个站点来继续学习。
在所有教程中,您都连接到 SQL CE 或 SQL Express DB。但我希望我的网站在 sql server 上建立一个数据库。
我在我的联网服务器上创建了一个名为 MyDB 的数据库。然后我在我的网络配置文件中设置我的连接字符串,如下所示:
add name="ApplicationServices"
connectionString="Data Source=Server\ServerInstance;Initial Catalog=MyDB;Integrated Security=True"
providerName="System.Data.SqlClient"
我创建了模型和脚手架控制器。
我像这样创建了一个简单的DataBaseContext:
Imports System.Data.Entity
Public Class DatabaseContext
Inherits DbContext
Public Property Employee As DbSet(Of Employee)
Public Property AnnualLeave As DbSet(Of AnnualLeave)
End Class
但是当我在脚手架控制器中点击以下行时,我得到了错误:
Function Index() As ViewResult
Return View(db.Employee.ToList()) //CREATE DATABASE permission denied in database 'master'`.
End Function
- 是否应该通过更改 MyDB 数据库的权限来解决此问题?这是 SQL 服务器端的权限问题吗?我很困惑为什么会因为数据库已经存在而收到创建数据库错误。
- 我是否收到此错误 b/c 我已经创建了数据库?脚手架是否想以某种方式创建数据库?
【问题讨论】:
-
听起来它正在尝试通过错误消息创建新数据库。我猜您首先在您的项目中使用 EF 代码,并使用它的迁移功能来构建您的数据库。检查 EF 上下文的设置以确保它正在使用您的连接字符串。
-
@sannee 感谢您的帮助。在哪里检查 EF 上下文的设置以确保它正在使用您的连接字符串?
-
@sannee 再次感谢。在那篇文章之后,我更改了连接字符串的名称以匹配数据上下文的名称。这给我带来了一个新的错误信息......进步!如果你想用这个的 jist 写一个答案(确保连接字符串的名称与数据上下文匹配)我会接受。
-
很酷希望对您有所帮助!我添加了一个反映此对话的答案。
标签: sql-server asp.net-mvc asp.net-mvc-3