4

我正在使用带有 EF Code First 5 的 MVC 4。我有点新,所以我只是从默认模板创建一个项目。

该项目正在与数据库对话,并且记录正在持久化。我们在工作中使用 DropCreateDatabaseIfModelChanges,我正在尝试让它与默认模板项目一起使用。我在模板项目的 SimpleMembershipInitializer 中找到了 SetInitializer 调用,并且一直在尝试使用它:

            Database.SetInitializer<NPContext>(new DropCreateDatabaseIfModelChanges<NPContext>());

代替

            Database.SetInitializer<NPContext>(null);

它不起作用 - 信息仍将保留在数据库中,但不会被删除并使用新模式重新创建。我还尝试在 Application_Start() 中设置初始化程序。在调试模式下,我没有崩溃或可见错误。

我对设置我正在使用的工具不是非常熟悉,我尝试四处寻找设置数据库权限(我使用的是 SQLEXPRESS,但我确实有 SQL Management Studio 2012),但不确定用户会做什么是或设置什么权限。

谁能引导我朝着正确的方向前进?在这一点上,我正在旋转我的轮子并浪费时间。

4

1 回答 1

0

Here is how I do this in my application using Application_Start(). First, I have an initializer class that handles seeding my database when it is recreated:

public class MyContextInitializer : DropCreateDatabaseIfModelChanges<MyContext>
{
    // Seed your database or anything else you want to do
}

Then in Application_Start() set your initializer:

Database.SetInitializer(new MyContextInitializer());
于 2012-12-02T00:13:07.050 回答