死神境界
40.46M · 2026-04-15
using System.Data.Entity;
namespace MusicStore.Models
{
public class MusicStoreEntities:DbContext
{
public DbSet<Album> Albums { get; set; }
public DbSet<Genre> Genres { get; set; }
}
}
我的web.config有以下连接字符串
<connectionStrings>
<add name="MusicStoreEntities"
connectionString="data source=.SQLEXPRESS; Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|MvcMusicStore.mdf; User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
在Application_Start()中,将数据库初始化策略设置为:
DbDatabase.SetInitializer<MusicStoreEntities>(
new CreateDatabaseIfNotExists<MusicStoreEntities>());
这将使用默认初始化程序,并且只有在找不到数据库时才会创建数据库.实际上有三种可能性:
> CreateDatabaseIfNotExists> DropCreateDatabaseAlways> DropCreateDatabaseIfModelChanges
你也可以在Application_Start()中使用它来做一些自定义初始化
Database.SetInitializer<MusicStoreEntities>(new MusicStoreEntityInitializer());
然后,根据您的需要添加一个派生自三种初始化类型之一的新类.
namespace MusicStore.Models
{
public class MusicStoreEntityInitializer :
CreateDatabaseIfNotExists<MusicStoreEntityInitializer>
{
protected override void Seed(MusicStoreEntity context)
{
base.Seed(context);
// your code to populate db with test data
}
}
}
通过这种设置,您可以获得很大的灵活性.