我正在尝试使用 Code First 创建数据库模型,而不是创建数据库本身。也就是说,我的 DBA 设置了一个空数据库,我有权为其创建表,但不能创建整个数据库。但是,每当我尝试使用 Code First 设置模型时,都会收到以下错误:
CREATE DATABASE permission denied in database 'master'.
这只是 Code First 的工作方式,还是有一些方法可以修改现有数据库?
PS——这是连接字符串——
<add name="HoursDb"
connectionString="Data Source=barksql.cedarville.edu;
Initial Catalog=Hours;
persist security info=True;
User ID=hours;
password=************;
multipleactiveresultsets=True;
App=EntityFramework"
providerName="System.Data.SqlClient" />
更新
根据@devdigital 的要求——
这是上下文类:
using System.Data.Entity;
using ....Models;
using System.Data.Entity.ModelConfiguration.Conventions;
namespace LibraryAdmin.DAL
{
public class HoursDb : DbContext
{
public DbSet<DaySpec> DaySpecs { get; set; }
public DbSet<WeekSpec> WeekSpecs { get; set; }
public DbSet<ExceptionHoursSet> ExceptionHoursSets { get; set; }
public DbSet<Schedule> Schedules { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
}
至于将数据库映射到连接,我假设它是通过约定完成的,因为 HoursDb 类名与连接字符串名称匹配。