Dan*_*sen 4 entity-framework ef-code-first entity-framework-4.1
正如本主题中所讨论的,Entity Framework Code First适用于开发环境.那么,需要对Entity Framework Code First应用程序进行哪些步骤或更改才能将其转移到Production?
DbContext初始化需要进行哪些更改以防止它在生产环境中进行修改?(或者,由于迁移的数据库中的数据库模式是正确的,它是否会避免麻烦?)还有什么要做的吗?
这是一篇关于代码第一种方法的精彩文章,包括底部的生产部署:http: //msdn.microsoft.com/en-us/magazine/hh126815.aspx
您可以使用Red Gate的SQL Compare等工具来分析开发环境和目标环境之间的差异,以构建允许DBA执行迁移的更改脚本.
您可能想要做的另一件事是将一个名为"AppVersion"的实体添加到您的代码优先上下文中.然后,覆盖DropCreateDatabaseIfModelChanges IDatabaseInitializer的Seed()方法,以便它使用连续构建编写当前应用程序版本或源控件修订版号.
例:
public class OrderDbInitializer : DropCreateDatabaseIfModelChanges<OrderContext>
{
protected override void Seed(OrderContext context)
{
context.AppVersion.Add(new AppVersion() {Version = Assembly.GetExecutingAssembly().GetName().Version.ToString()});
context.SaveChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
这样,您始终可以知道哪个版本的代码与数据库相关联.您还可以向Seed()方法添加更多代码,以创建开发人员在编写应用程序时需要使用的示例数据.
最后,您不希望在生产中使用DropCreateDatabaseIfModelChanges初始化程序,因此需要使用配置转换或某些工厂模式.
希望这有助于给你一些想法.
归档时间: |
|
查看次数: |
2404 次 |
最近记录: |