相关疑难解决方法(0)

依赖注入到Entity Framework种子方法?

是否可以将依赖项注入Entity Framework 6的Configuration类?

例如,像这样:

internal sealed class Configuration : DbMigrationsConfiguration<MyBaseContext>
{
    private readonly ILogger _logger;

    public Configuration(ILogger logger)
    {
        this._logger = logger;
        AutomaticMigrationsEnabled = true;
    }

    protected override void Seed(Home.DAL.Data.HomeBaseContext context)
    {
         //log something
    }
}
Run Code Online (Sandbox Code Playgroud)

或者更通用的方法是获得在迁移内部注入代码的可能性:

public partial class InitialMigration : DbMigration
{        
    private readonly ILogger _logger;

    public InitialMigration(ILogger logger)
    {            
         this._logger = logger;
    }

    public override void Up()
    {
        CreateTable(...);
    }

    public override void Down()
    {
        DropTable(...);
    }
}
Run Code Online (Sandbox Code Playgroud)

DI初始化在Entity Framework 6中发生了什么来定义那些绑定?

UPDATE

我不是在问我应该用什么.目前,我使用Ninject,但这是不可能的,因为无论我使用什么,我应该能够将依赖注入迁移的构造函数.如果你写的东西就像我在上面的例子中所写的那样,那么你只会抛出"无默认构造函数"的异常.

以上示例中的ILogger只是依赖的简单示例.如果您有IGeneratorService会生成一些数据并且您希望使用此服务为Seed方法生成数据,情况会变得更糟.

c# entity-framework

11
推荐指数
1
解决办法
1518
查看次数

EF Migrations migrate.exe生成脚本

我正在玩Entity框架和持续构建.到目前为止,通过使用migrate.exe和相应的参数,我可以毫无问题地运行迁移或一系列迁移.

但是,在尝试使用migrate.exe来启动脚本而不是执行迁移时遇到了麻烦,就像我通过运行一样

update-database -TargetMigration TestMigration -script
Run Code Online (Sandbox Code Playgroud)

从Visual Studio中的程序包管理器控制台中.

目前有办法做到这一点吗?

谢谢.

migration entity-framework

8
推荐指数
2
解决办法
4266
查看次数

标签 统计

entity-framework ×2

c# ×1

migration ×1