- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 EF core 2.0 并想过滤子集合。谁能帮助我如何在 EF 核心 2.0 中执行此操作?
var items = await _context.RiskType
.Include(r => r.Categories)
.ThenInclude(category => category.Alerts)
.ToListAsync();
在上面的代码中我想过滤category.Alerts.where(alert=>alert.caseId==1)
谢谢
最佳答案
正如其中一条评论中所说,这还不受支持。但是,您可以通过多种方式解决它。
首先,您可以 .Select() 将所需数据放入匿名或 DTO 对象中并使用它。请注意,在下面的示例代码中,.Include() 被 EF Core 忽略,因为存在 .Select() 方法。但是为了清楚起见,我喜欢使用它。
Parent[] parents = context.Parent
.Include(p => p.Children)
.Select(p => new
{
FilteredChildren = p.Children.Where(/*Filter Func for the children collection*/)
})
.ToArray();
另一种方法是为您需要的某个 Parent 显式加载实体。当您只需要为一些父项加载子项时,这是很好的,但是如果您有一个大集合并且想要加载所有子项,请记住显式加载需要访问数据库。在下面的代码示例中,您说您想要 .Load() a .Collection() 用于父条目,如果您想要过滤它,您必须使用 .Query() 以便您可以获得将用于获取的查询实体并使用 .Where() 方法应用过滤器。最后,您只需说 .Load() 即可将子实体加载到父实体中。如果您想对不是集合的导航属性使用显式加载,则必须使用 .Reference() 方法而不是 .Collection()。
Parent parent = context.Parents.Find(/*Key*/);
context.Entry(parent)
.Collection(p => p.Children)
.Query()
.Where(/*Filter Func for the children collection*/)
.Load()
我是 EF 的新手,如果有人有更多建议,我想看看。
关于linq-to-entities - ThenInclude 中的 Entifyframework 核心 2.0 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47177891/
众所周知,EF-Core 中没有延迟加载。因此,这意味着我不得不事后才进行查询。既然要思考,那我就试着好好的去做吧。 我有一个相当标准的更新查询,但我想嘿,我不必总是包含 HeaderImage 和
我一直在尝试使用 Entity Framework,在遇到以下错误后,我尝试使用 ThenInclude 来解决它。 The expression '[x].ModelA.ModelB' passed
这是我的通用存储库: public class Repository : IRepository where T : BaseEntity { private DbContext _dbCon
我将.NET Framework(EF6)代码传输到ASP.NET Core(EF Core),但我偶然发现了这个问题。这是一些示例代码: 在EF6中,我使用Include()和Select()进行预
有没有人看到我做错了什么? ProjectActivityTasks 具有 UnitOfMeasureId 和 ProjectActivityTaskTypeId。按照它的编写方式,它认为 UnitO
我看到一些包含 ThenInclude 的 LINQ 代码示例。我在哪里可以找到这样的方法?在外部库或其他命名空间中。 我想用这样的方法获取派生数据,但是我找不到这样的方法或者你知道其他解决方案吗
这个问题在这里已经有了答案: Filtering on Include in EF Core (9 个回答) 关闭 5 个月前。 我有 3 个实体: Questionnaire.cs: public
我使用以下查询根据需要过滤我的 BranchId。 var query = await _dbContext.TargetItems .Include(i => i.Br
我有一个这样的查询 return await _ctx.Activities .Include(a => a.Attributes) .Include(
我的 IQueryable 看起来像这样: IQueryable query = context.Set(); query = query.Include("Car").ThenInclude("M
英孚核心 3.1 我见过Specification例如,并希望实现 ThenInclude 模式。 public static class QuerySpecificationExtensions {
我正在创建一个 ASP.NET Core API 应用程序,并依赖于 EF Core。我有这样定义的实体: public class AppUser : IdentityUser { publ
我将 Entity Framework Core 与 Repository Pattern 一起使用,但遇到一个问题。 我有类 Customer、Company 和 Email,其中隐藏了与此处无关的
假设首先有这些模型: Method 有一个 OriginalCodeOriginalCode 有很多 MutantMutant 有许多 ParseSubTree 现在,当查询 Method 时,我希望
这个问题在这里已经有了答案: Can not load related data with Include or ThenInclude or Select/Many with ONE query
我需要在 ThenInclude 中使用 where var templatesFields = await _context.Sections .Include(x
假设首先拥有这些模型: Method有一个 OriginalCodeOriginalCode有很多Mutant秒Mutant有很多ParseSubTree秒 现在在 Method 上查询时我想要另一个
以前(使用 .net 4.5.2 和 EF 6 时)。我有一个通用的 Get接受多个包含的方法如下; public abstract class DataContext : IdentityDbCon
好的,所以我有一个表 Building,其中包含该建筑物中的所有人员。然而,每个人都有一个职业,它本身就是一个实体,根据可用的内容添加到 Person 实体。 var data = _dbcontex
我正在使用 EF core 2.0 并想过滤子集合。谁能帮助我如何在 EF 核心 2.0 中执行此操作? var items = await _context.RiskType
我是一名优秀的程序员,十分优秀!