【发布时间】:2011-08-25 18:09:43
【问题描述】:
所以我正在学习 MVC3 和 EF4。 我尝试了代码优先方法,但它对我来说太混乱了。我可以毫无问题地创建类,但是当处理外键和彼此之间的关系时,困难的部分就来了。
但我先选择了模型。这样我可以直观地设计它并查看关系在哪里。
创建模型后,它会为我创建一个 SQL,我会针对我的 SQL Express 数据库执行该 SQL。完成了,完成了。
现在我想要表格中的数据。当然,我可以使用服务器资源管理器添加它们,但我很可能会在进行过程中对我的模型进行更改。并不断更新数据库。所以我不能一直手动输入数据。我知道如果您首先使用代码,您可以派生DropCreateDatabaseIfModelChanges 并覆盖seed 方法。
但是,如何使用模型优先方法做到这一点? 我有以下代码:
public class DatabaseInitializer : IDatabaseInitializer<BettingContext> {
public void InitializeDatabase(BettingContext context) {
var teams = new List<Team> {
new Team { Name="Toronto Maple Leafs", League="NHL"},
new Team { Name="Boston Bruins", League="NHL"},
new Team { Name="Vancouver Canucks", League="NHL"},
new Team { Name="Nashville Predators", League="NHL"},
new Team { Name="Montreal Canadiens", League="NHL"},
};
}
}
当然,在我的全局文件中:
protected void Application_Start()
{
Database.SetInitializer<BettingContext>(new DatabaseInitializer());
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
那么现在呢?我如何告诉它运行该方法?我做错了什么?
【问题讨论】:
标签: .net asp.net-mvc-3 entity-framework-4 seed ef-model-first