我正在为 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());
});