如何使用 Castle Windsor 注册 Ef 核心数据库上下文?

Joh*_*ohn 6 entity-framework castle-windsor castle .net-core

我在 .net core 下有一个项目。我想用 Castlewindosr 注册 Ef Core Context 但是我在 .net core 中找不到 EfCore Wireup 上下文的解决方案。谢谢。

ami*_*ini 3

如果您想这样做,首先您需要知道您有一个具有 DbContextOptionsBuilder 参数的 Context,如果您添加了这些构造函数,则还需要注册它,现在我在下面编写了代码使您不那么自足地使用 OnConfiguring 方法。

   public static class DbContextFactoryBuilder
{
    public static IDbContext Create(string connectionString)
    {
        var result = new MyDbContext(new DbContextOptionsBuilder().UseSqlServer(connectionString).Options);
        return result;
    }
}
Run Code Online (Sandbox Code Playgroud)

以及在城堡中注册的代码。

container.Register(Component.For<MyDbContext>().UsingFactoryMethod(c => DbContextFactoryBuilder.Create(@"---your connection string---")));
Run Code Online (Sandbox Code Playgroud)