与Ninject结合PetaPoco

问题描述 投票:0回答:1

我需要用Ninject绑定一个PetaPoco数据库对象。在文档(https://github.com/CollaboratingPlatypus/PetaPoco/wiki/Fluent-Configuration)中,为SimpleInjector提供了以下示例:

var container = new SimpleInjector.Container();

container.RegisterSingleton<IDatabaseBuildConfiguration>(DatabaseConfiguration.Build()
    .UsingCommandTimeout(180)
    .WithAutoSelect()
    .WithNamedParams()
    .UsingConnectionStringName("myAppsConnection")
    .UsingDefaultMapper<ConventionMapper>(), Lifestyle.Transient);

container.Register<IDatabase>(() => container.GetInstance<IDatabaseBuildConfiguration>().Create())

我的其他绑定看起来都如下。

Bind<IRepRepo>().To<RepRepoWeb>().InSingletonScope();

但是我找不到在Ninject中进行绑定的明确方法。

c# ninject petapoco
1个回答
0
投票

我现在开始工作了。关键是要使用ToMethod。

Bind<IDatabaseBuildConfiguration>().ToMethod(ctx =>
DatabaseConfiguration.Build().UsingCommandTimeout(180)
    .WithAutoSelect()
    .WithNamedParams()
    .UsingProvider<SqlServerDatabaseProvider>()
    .UsingConnectionString("xxxx")
).InSingletonScope();

Bind<IDatabase>().ToMethod(ctx =>
ctx.Kernel.Get<IDatabaseBuildConfiguration>()
.Create()
).InSingletonScope();
© www.soinside.com 2019 - 2024. All rights reserved.