C#-在数据库中创建数据库的权限被拒绝';硕士';(EF-代码优先)
我已经在这里看到了一些答案,但没有任何帮助解决问题 我正在学习Microsoft ITAcademy关于MVC Jumpstart的教程,他们通过一个使用C#-在数据库中创建数据库的权限被拒绝';硕士';(EF-代码优先),c#,asp.net-mvc,ef-code-first,C#,Asp.net Mvc,Ef Code First,我已经在这里看到了一些答案,但没有任何帮助解决问题 我正在学习Microsoft ITAcademy关于MVC Jumpstart的教程,他们通过一个使用EF code First方法的示例进行教学 当我运行应用程序时,我得到一个错误: 在数据库“master”中创建数据库的权限被拒绝 这是我的连接字符串: <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catal
EF code First
方法的示例进行教学
当我运行应用程序时,我得到一个错误:
在数据库“master”中创建数据库的权限被拒绝
这是我的连接字符串:
<add name="DefaultConnection"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-Conference-20150930151714;Integrated Security=true"
providerName="System.Data.SqlClient" />`
这就是在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....//
}
}
这是一段代码,用于将虚拟数据添加到数据库中
:
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();
}
}
公共类ConferenceContextInitializer:DropCreateDatabaseAlways
{
受保护的覆盖无效种子(ConferenceContext上下文)
{
context.Sessions.Add(
新会议()
{
Title=“我想要意大利面”,
抽象=“意大利面爱好者的生活和时代”,
Speaker=context.Speakers.Add(
新发言者()
{
Name=“John Doe”,
EmailAddress=“约翰。doe@test.com"
})
});
SaveChanges();
}
}
你能解释一下数据库应该在哪里创建吗
我应该对我的SQL Server
有特殊权限吗?还是只需要在App\u Data
文件夹中创建一个数据库就可以了
我能在我的电脑上创建数据库吗?你需要给你的帐户一个全局服务器权限才能在服务器上创建数据库。你能尝试取消这一行的注释,看看会发生什么吗'//public ConferenceContext():base(“name=DefaultConnection”){}'进入SSMS并在SQLEXPRESS实例中创建数据库。您当前的连接字符串希望将其命名为“aspnet-Conference-20150930151714”,但您可能只希望将其命名为“aspnetdemo”或简单的名称。如果无法在ManagementStudio中创建它,则存在权限问题。另一种选择是使用LocalDb,问题是数据库必须在代码运行时自动创建。我不必自己创造它。我想,我没有创建数据库的权限,所以,基本上,我需要联系我的网络管理员来授予我权限?数据库是在SQL Server中创建的吗?
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; }
}
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();
}
}