如何设置 Sharp Repository 以与 AutoFac 和 Entity Framework 一起使用?

How do I setup SharpRepository to work with AutoFac & Entiry Framework?

我已经安装了

SharpRepository.EfRepository
SharpRepository.Ioc.Autofac
SharpRepository.Repository

并且我已按照 Autofac 文档的说明添加了此代码以设置 Autofac:

    void SetupAutofac()
    {
        var builder = new ContainerBuilder();

        // Get your HttpConfiguration.
        HttpConfiguration config = GlobalConfiguration.Configuration;

        // Register your Web API controllers.
        builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

        // OPTIONAL: Register the Autofac filter provider.
        builder.RegisterWebApiFilterProvider(config);

        // Set the dependency resolver to be Autofac.
        IContainer container = builder.Build();
        config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
    }

但是 SharpRepository 入门指南无法帮助我了解 Autofac --> EF --> SharpRepo 胶水,因为它面向 StructureMap。请指教!

(如果可能,我想避免将内容放入 Web.config)

您需要安装 SharpRpository.Ioc.Autofac NuGet 包,如果您还没有。

然后你会打电话给

builder.RegisterSharpRepository()

为了告诉 Autofac 如何处理 IRepository。

然后告诉 SharpRpository 在需要 EF 时使用 Autofac,你需要调用

RepositoryDependencyResolver.SetDependencyResolver(new AutofacDependencyResolver(container));

应该就可以了。