我是一名asp mvc 3 noobie。我已经做了一些tutorials,现在我准备通过尝试建立一个网站来继续学习。
在所有教程中,您将连接到SQL CE或SQL Express DB。但我希望我的网站在sql server上构建一个数据库。
我在网络服务器上创建了一个数据库,我称之为MyDB。然后我在我的web配置文件中设置我的连接字符串,如下所示:
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
答案 0 :(得分:4)
听起来它正试图通过错误消息创建一个新的数据库。我猜你首先在你的项目中使用EF代码并使用它的迁移功能来构建你的数据库。检查EF上下文的设置以确保它使用您的连接字符串。
连接字符串或其名称可以传递给DbContext的构造函数。如果使用默认构造函数,它将搜索与派生上下文类的名称相同的连接字符串。基本上,确保您的连接字符串与派生的dbcontext类具有相同的名称,并且应该找到它。
答案 1 :(得分:3)
1.您需要将IIS应用程序池标识设置为ASP.NET集成模式。
2.在SQL Server中为IIS APPPOOL \ ASP.NET添加登录。
3.在SQL Server中,将IIS APP POOL登录设置为具有dbcreator角色。
答案 2 :(得分:0)
USE大师; 执行sp_addsrvrolemember @loginame = N' YourAppUserLogin',@ rolename = N' dbcreator';
答案 3 :(得分:0)
<add name="Default" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=test2;user id=sa;password=123456"
providerName="System.Data.SqlClient" />
在您的应用程序中使用此连接字符串