我正在为Web API + MVC 5项目(使用StructureMap)设置NPoco用于依赖注入,我不确定管理数据库连接的最佳实践是什么。我应该使用单身人士还是每个请求范围? API / MVC控制器本身并没有真正使用该数据库,而是最终将其注入到Mediatr CQRS处理程序中。
目前我正在使用安装类
public static class DbFactory
{
public static DatabaseFactory Factory { get; set; }
public static void Setup()
{
Factory = DatabaseFactory.Config(x =>
{
x.UsingDatabase(() => new Database("con"));
//x.WithFluentConfig(fluentConfig);
//x.WithMapper(new Mapper());
});
}
}
使用StrucureMap配置,如此
// called from global.asax
DbFactory.Setup();
var container = new Container(cfg =>
{
// ... other stuff
cfg.For<IDatabase>().Use(() => DbFactory.Factory.GetDatabase());
});