民间,
我刚开始设计一个新的网络项目。从VS2012开始,我创建了一个新的Internet网站项目。它附带了一个已经包含几个表格的数据库。这很好。
现在,我需要使用一些新表扩展数据库,并使用几个新字段更新UserProfile。但是,由于这将是一个新的数据库,我不想启用迁移步骤并添加实际上不需要的代码膨胀。
以下是我找到的解决方法:
在AccountModels.cs中添加新表。例如,
[表( “项目”)] 公共类物品{ ... }
对于每个新表,将一个DbSet字段添加到AccountModels.cs中的UsersContexts类。
公共类UserContext:DbContext {
...
public DbSet<Items> Items {get; set; }
}
删除原始数据库文件,创建一个具有相同名称的新数据库文件,然后运行该应用程序。
瞧。新数据库充满了所有表格。
这是正确的方法吗?
虽然它有效,但我不确定第3步。我想知道框架需要知道需要创建一个新表,并且实际上向UserContext添加一个新字段会触发新表的创建。这种做法是对的吗?
提前感谢您的帮助。
的问候,
彼得
答案 0 :(得分:0)
通过不使用代码优先迁移,手动删除数据库是您可以做的最好的事情。还有DropCreateDatabaseIfModelChanges初始化程序,但要小心不要在应用程序的发行版中使用它。
我还建议在单独的cs文件中编写DbContext。当你使用流畅的api配置EF关系(我会做什么)时,它会变得非常大。考虑在解决方案变得更大时将DAL和模型放在单独的项目中。对一个db使用多个上下文也会导致问题,因此将其命名为SomeAppContext会更好。