如何为各种环境分离Initializer方法

时间:2015-07-08 19:26:15

标签: entity-framework code-first web-deployment

我是EF Code的新手。

我已经创建了一个项目,我已经创建了初始化类,该类派生自CreateDatabaseIfNotExists,DropCreateDatabaseIfModelChanges,DropCreateDatabaseAlways或Custom DB Initializer。

我已经将“DropCreateDatabaseIfModelChanges”用于开发目的,只要模型发生变化就会重新创建数据库,并且在开发过程中它会有所帮助,但现在可以部署到QA并最终部署到生产环境。

我的想法是保持这个发展

namespace Models
{
    public class SchoolInitializer : DropCreateDatabaseIfModelChanges<SchoolContext>
    {
        protected override void Seed(SchoolContext context)
        {
        }
    }
 }

和QA或生产

namespace Models
{
    public class SchoolInitializer : CreateDatabaseIfNotExists<SchoolContext>
    {
        protected override void Seed(SchoolContext context)
        {
        }
    }
 }

如何使用app.config文件实现此目的。因此,当我为QA或Release发布时,它应该自动更改。

感谢。

1 个答案:

答案 0 :(得分:0)

使用SlowCheetah包,您可以转换app.config。

有关如何进行转换的示例:https://stackoverflow.com/a/13203775/441292