如何在 ASP.NET 样板中使用 EFCore.BulkExtensions

How do I use EFCore.BulkExtensions in ASP.NET Boilerplate

我需要在 ASP.NET 样板中进行批量插入,我在阅读 https://github.com/aspnetboilerplate/aspnetboilerplate/issues/4397 后尝试实施 EFCore.BulkExtensions。

我从 nuget 安装了最新的 EFCore.BulkExtensions 到项目中,并尝试如下使用 doContext 以便我可以在任何需要的地方使用。

public class MyQueryExecutor : IMyQueryExecutor, ITransientDependency
{
    private readonly IDbContextProvider<ModCoreDbContext> _dbContextProvider;

    public MyQueryExecutor(IDbContextProvider<ModCoreDbContext> dbContextProvider)
    {
        _dbContextProvider = dbContextProvider;
    }

    public void BulkImport<T>(IList<T> entities) where T : class
    {
        _dbContextProvider.GetDbContext().BulkInsert(entities);
    }
}

public interface IMyQueryExecutor
{
    void BulkImport<T>(IList<T> entities) where T : class;
}

我在所需项目中引用了 EFCore.BulkExtensions,当我尝试 运行 项目时,在 Startup.cs[=17= 中执行以下行时出现错误]

 app.UseAbp(); //Initializes ABP framework.

错误:

TypeLoadException: Could not load type 'Microsoft.EntityFrameworkCore.Metadata.Internal.EntityMaterializerSource' from assembly 'Microsoft.EntityFrameworkCore, Version=3.1.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.

作为样板框架一部分的实际 Microsoft.EntityFrameworkCore 是 2.2.4

我需要下载较低版本的 EFCore.BulkExtensions (2.4.7) nuget,因为最新版本不支持 EF 2.2.4