C# 如何查询集合属性中任何项与特定筛选器匹配的实体?
好的,我使用实体框架,代码优先的方法。我有以下实体类:C# 如何查询集合属性中任何项与特定筛选器匹配的实体?,c#,entity-framework,C#,Entity Framework,好的,我使用实体框架,代码优先的方法。我有以下实体类: class EntityA { public int EntityAId { get; set; } public virtaul ICollection<EntityB> Bs { get; set; } } class EntityB { public int EntityBId { get; set; } public bool Foobar { get; set; } public virtual
class EntityA
{
public int EntityAId { get; set; }
public virtaul ICollection<EntityB> Bs { get; set; }
}
class EntityB
{
public int EntityBId { get; set; }
public bool Foobar { get; set; }
public virtual EntityA A { get; set; }
}
类实体a
{
public int EntityAId{get;set;}
公共virtaul i集合Bs{get;set;}
}
类别实体B
{
public int EntityBId{get;set;}
公共bool Foobar{get;set;}
公共虚拟实体A{get;set;}
}
给定一个DbSet
,我试图找出如何查询所有EntityA
,其中Bs
中的EntityB
的Foobar
等于true
如何使用EF fluent查询API执行此查询?谢谢
var entities = dbSet.Where(m => m.Bs.Any(b => b.Foobar == true).ToList();
我应该为你做这件事。基本上-给我所有有子实体B的实体,其中foobar等于true。有关更多信息,请查看Linq和
请发表评论:
var dbSet= your dbset of EntityB
var id = the id of the EntityB you're querying with
var entities = dbSet.Where(m => m.A.Bs.Any(b => b.EntityBId == id)).Select(m => m.A).ToList();
再一次,让我们来试探一下-给我一组EntityB中的每个EntityA,其中EntityB的导航道具包含id等于给定id的任何EntityB。由于您要查询一组EntityB,您必须选择该实体的a。Geeze这很难说;太多的as和bs。那么这个查询的调整版本呢,它需要所有
EntityA
的子EntityB
来自给定的EntityB
集合?@Ryan-我更新了我的答案。正如你所知,为你的每一个问题创建一个新的问题会更好。始终思考如何让未来的用户更容易找到问题的答案。你太棒了!我专门为第二个问题创建了一个问题,在。请随意把你的答案贴在那里,我来核对一下!谢谢