我使用代碼優先EF和新框架。我正在嘗試使用Database.SetInitializer
創建數據庫,但它看起來像我需要SQL Server Express。但是我必須在SQL Server 2014中創建數據庫。如何做到這一點?在SQL Server中使用代碼優先實體框架創建數據庫
任何人可以從它具有以下類EF-的DbContext書的例子來解釋。
public class BreakAwayContext : DbContext
{
public DbSet<Destination> Destinations { get; set; }
public DbSet<Lodging> Lodgings { get; set; }
public DbSet<Trip> Trips { get; set; }
public DbSet<Person> People { get; set; }
public DbSet<Reservation> Reservations { get; set; }
public DbSet<Payment> Payments { get; set; }
public DbSet<Activity> Activities { get; set; }
}
class Program
{
static void Main(string[] args)
{
Database.SetInitializer(new InitializeBagaDatabaseWithSeedData());
try
{
using (var context = new BreakAwayContext())
{
foreach (var destination in context.Destinations)
Console.WriteLine(destination.Name);
}
}
catch(Exception ex){
Console.WriteLine(ex.ToString());
}
Console.Read();
}
}
public class InitializeBagaDatabaseWithSeedData : DropCreateDatabaseAlways<BreakAwayContext>
{
protected override void Seed(BreakAwayContext context)
{
context.Destinations.Add(new Destination
{
Name = "Hawaii",
Country = "USA",
Description = "Sunshine, beaches and fun."
});
context.Destinations.Add(new Destination
{
Name = "Wine Glass Bay",
Country = "Australia",
Description = "Picturesque sandy beaches."
});
}
沒問題,只要改變你的連接字符串在上下文構造函數中。如果您使用的是像DropCreateDatabase這樣的初始化程序...您需要確保您有權這樣做。否則,您可以在management studio中創建初始數據庫,使用初始化程序(如MigrateDatabaseToLatestVersion)並將連接字符串指向新數據庫。 –
我正在使用從DropCreateDatabaseAlways繼承的類進行初始化。我不知道如何在這種情況下使用連接字符串。目前我沒有連接字符串。當我沒有連接字符串時,我認爲使用了默認值。但是我不能在我的情況下使用默認值。謝謝。 –