データベース自体を作成せずに、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 クラス名は接続文字列名と一致するため、規則に従って行われると想定しています。