如何配置Ninject以创建单个PetaPoco实例

时间:2013-11-26 09:41:00

标签: c# ninject inversion-of-control petapoco

掌握Ninject,目前我在MVC应用程序中有Ninject配置(我想知道怎么做,但这是一个不同的问题)。

我还有其他几种工作配置,但我不知道如何使用PetaPoco进行设置。

这是我尝试的两种方式:

Bind<PetaPoco.Database>().ToConstructor(
    context => new PetaPoco.Database("connectionStringName")
).InSingletonScope();


Bind<PetaPoco.Database>().ToMethod(
    context =>
    {
       var db = new PetaPoco.Database("connectionStringName");
       return db;
    }
).InSingletonScope();

我得到的错误:

使用数据库的隐式自绑定激活数据库时出错

几个构造函数具有相同的优先级。请使用ToConstructor语法指定构造函数或添加Inject属性。

构造

Database(string connectionStringstring providerName)

Database(string connectionStringDbProviderFactory provider)

如何设置绑定以便传递一个PetaPoco实例?

更新

我刚刚看到PetaPoco的一个名为NPoco的分支包含一个IDatabase接口,所以这可能是更好的选择吗?

更新2

我换了NPoco并使用了IDatabase接口。 Ninject把它拿起并毫无问题地通过了它。我现在需要考虑处理数据库对象。

0 个答案:

没有答案