实体框架代码优先(新数据库)产生错误-“;CREATE DATABASE权限在数据库';中被拒绝;master
本文关键字:数据库 权限 CREATE DATABASE master 拒绝 代码 框架 实体 错误 | 更新日期: 2023-09-27 18:19:35
我创建了一个新项目(ASP.NET MVC),该项目将使用实体框架代码优先创建一个新数据库,并向数据库中一次性添加记录,并填充下拉列表。我正试图弄清楚如何自动生成数据库。到目前为止,当我运行代码时,我得到了"数据库‘master’中CREATE DATABASE权限被拒绝"。master不是正确的数据库。我需要在代码或连接字符串中修改什么才能从头开始自动创建数据库?
控制器:
namespace TDReport.Controllers
{
public class ReportController : Controller
{
//
// GET: /Report/
public ActionResult Index()
{
var db = new StageContext();
if (!db.Database.Exists())
{
db.Database.Create();
db.Stages.Add(new Stage { PCR = 201 });
db.Stages.Add(new Stage { PCR = 202 });
db.Stages.Add(new Stage { PCR = 203 });
db.Stages.Add(new Stage { PCR = 501 });
db.SaveChanges();
}
return View();
}
上下文类别:
namespace TDReport.Models
{
public class StageContext : DbContext
{
public DbSet<Stage> Stages { get; set; }
public DbSet<Report> Reports {get; set;}
}
}
型号:
namespace TDReport.Models
{
public class Stage
{
public int ID { get; set; }
public int PCR { get; set; }
}
}
连接字符串标签:
<connectionStrings>
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)'v11.0;Initial Catalog=aspnet-TDReport-20140825134744;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|'aspnet-TDReport-20140825134744.mdf" />
<add name="StageProductionEntities" connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)'v11.0;attachdbfilename=|DataDirectory|'StageProduction.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
如果在数据库上下文中有无参数构造函数,则需要有一个与数据库上下文名称匹配的连接字符串。
<add name="StageContext" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)'v11.0;Initial Catalog=TheDatabaseName;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|'TheDatabaseName.mdf" />