0

伙计们,

我刚开始设计一个新的网络项目。从VS2012,我生成了一个新的互联网网站项目。它带有一个已经用几个表布局的数据库。这可以。

现在,我需要用几个新表来扩展数据库,并用几个新字段更新 UserProfile。但是,由于这将是一个新数据库,我不想启用迁移步骤并添加实际上不需要的代码膨胀。

这是我找到的解决方法:

  1. 根据需要使用新字段扩展 UserProfile。
  2. 在 AccountModels.cs 中添加新表。例如,

    [Table("Items")] 公共类 Items { ... }

  3. 对于每个新表,将 DbSet 字段添加到 AccountModels.cs 中的 UsersContexts 类。

    公共类用户上下文:DbContext {

     ...
     public DbSet<Items> Items {get; set; }
    

    }

  4. 删除原来的数据库文件,新建一个同名的数据库文件,然后运行应用程序。

瞧。新数据库填满了所有表。

这是正确的方法吗?

虽然它有效,但我不太确定第 3 步。我认为框架需要知道需要创建一个新表,并且本质上向 UserContext 添加一个新字段会触发新表的创建。这是正确的方法吗?

预先感谢您的帮助。

问候,
彼得

4

1 回答 1

0

通过不使用代码优先迁移,手动删除数据库是您能做的最好的事情。还有 DropCreateDatabaseIfModelChanges 初始化程序,但请注意不要在应用程序的发布版本中使用它。

我还建议将 DbContext 写入单独的 cs 文件中。当您使用 fluent api 配置 EF 关系(我会做什么)时,它会变得非常大。当您的解决方案变得更大时,请考虑将 DAL 和您的模型放在单独的项目中。为一个数据库使用多个上下文也会导致问题,因此将其命名为 SomeAppContext 会更好。

于 2013-09-15T18:04:17.470 回答