掌握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把它拿起并毫无问题地通过了它。我现在需要考虑处理数据库对象。