我使用代码优先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继承的类进行初始化。我不知道如何在这种情况下使用连接字符串。目前我没有连接字符串。当我没有连接字符串时,我认为使用了默认值。但是我不能在我的情况下使用默认值。谢谢。 –