とPetaPocoの共有接続を使用する:これは、Global.asaxの中のStructureMapの私の現在の実装であるのStructureMap
以下var container = (IContainer)IOCContainer.Initialize();
DependencyResolver.SetResolver(new StructureMapDependencyResolver(container));
は、上記に参照されているコードです:
public static class IOCContainer
{
public static IContainer Initialize()
{
ObjectFactory.Initialize(x =>
{
x.Scan(scan =>
{
scan.TheCallingAssembly();
scan.WithDefaultConventions();
scan.AddAllTypesOf<IController>();
});
x.For<IConfigRepository>().Use<ConfigRepository>();
});
return ObjectFactory.Container;
}
}
public class StructureMapDependencyResolver : IDependencyResolver
{
public StructureMapDependencyResolver(IContainer container)
{
_container = container;
}
public object GetService(Type serviceType)
{
if (serviceType.IsAbstract || serviceType.IsInterface)
{
return _container.TryGetInstance(serviceType);
}
else
{
return _container.GetInstance(serviceType);
}
}
public IEnumerable<object> GetServices(Type serviceType)
{
return _container.GetAllInstances<object>()
.Where(s => s.GetType() == serviceType);
}
private readonly IContainer _container;
}
私が使用していることを読んだことがあります共有接続がパフォーマンスを少し向上させる可能性がありますので、私はMVCアプリケーションでこれを使用する方法を知りました。私は私のリポジトリのコンストラクタに新しく作成したPetaPoco.Databaseオブジェクトを渡さなければならないと思いますか?
おかげ
私は残念なことにT4を使用していません – Jon
ああ、あなたはあなたのすべてのポコを手で書いていますか? –
私はデータベースとして厄介な大文字とアンダースコアを列名のために置くので、私はPOCOを作成していると、コードを清潔に保つために列名でプロパティを飾る – Jon