【问题标题】:The entity type HashSet<Product> was not found when using RemoveRange使用 RemoveRange 时未找到实体类型 HashSet<Product>
【发布时间】:2020-01-13 12:38:48
【问题描述】:

使用 Entity Framework Core 3.1 我正在删除几个篮子中的所有产品:

 IQueryable<baskets> baskets = _context.Baskets.Where(x => x.Value <= 10);

 _context.RemoveRange(baskets.Select(x => x.Products));

在 RemoveRange 命令我得到错误:

'System.InvalidOperationException' in Microsoft.EntityFrameworkCore.dll: 
'The entity type 'HashSet<Product>' was not found. 
Ensure that the entity type has been added to the model.'

我能够创建、更新和删除一项。

问题仅在于RemoveRange。我错过了什么?

【问题讨论】:

    标签: entity-framework-core entity-framework-core-3.1


    【解决方案1】:

    看起来x.Products 是一个集合 导航属性,因此Select 返回集合集合,而RemoveRange 期望对象集合(实体实例)。

    只需将Select 替换为SelectMany

    _context.RemoveRange(baskets.SelectMany(x => x.Products));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-22
      • 2023-02-26
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      相关资源
      最近更新 更多