我在这里看到了一些答案,但没有任何帮助解决问题。
我正在关注MVC Jumpstart的Microsoft ITAcademy教程,他们通过一个使用EF Code-First
方法的示例进行教学。
当我运行该应用程序时,我收到了错误消息:
在数据库' master'
中拒绝CREATE DATABASE权限
这是我的连接字符串:
<add name="DefaultConnection"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-Conference-20150930151714;Integrated Security=true"
providerName="System.Data.SqlClient" />`
我不会在这里发布所有代码,因为它是通过Microsoft教程逐行完成的。
当我调用一个应该从数据库中检索数据的控制器时,它失败了:
public ActionResult Index()
{
return View(db.Speakers.ToList());//fails here with described exception
}
这是Database
中Global.asax.cs
初始化的方式:
using System.Data.Entity;
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
Database.SetInitializer<ConferenceContext>(new ConferenceContextInitializer());
//the rest of code....//
}
}
这是ConferenceContext
类:
using System.Data.Entity;
public class ConferenceContext : DbContext
{
//public ConferenceContext() : base("name = DefaultConnection") { }
public DbSet<Session> Sessions { get; set; }
public DbSet<Speaker> Speakers { get; set; }
}
这是一段用于向Database
添加虚拟数据的代码:
public class ConferenceContextInitializer : DropCreateDatabaseAlways<ConferenceContext>
{
protected override void Seed(ConferenceContext context)
{
context.Sessions.Add(
new Session()
{
Title = "I want Spaghetti",
Abstract = "The life and times of spaghetti lover",
Speaker = context.Speakers.Add(
new Speaker()
{
Name = "John Doe",
EmailAddress = "john.doe@test.com"
})
});
context.SaveChanges();
}
}
你能解释一下我应该在哪里创建数据库吗?
我应该对SQL Server
拥有特殊权限,还是只在App_Data
文件夹中创建数据库?
我可以在我的工作PC
上完全创建数据库吗?
答案 0 :(得分:2)
您需要为您的帐户授予在服务器上创建数据库的全局服务器权限。