我的模型如下
class MyClass()
{
public int Id { get; set; }
public List<Item> Items { get; set; }
}
class Item
{
public int Id { get; set; }
public string Name { get; set; }
}
两者都被添加到DBContext
DbSets
,现在我想使用MyClass
中Name
属性的值过滤掉Items
采集。我该怎么做?
答案 0 :(得分:1)
首先以这种方式纠正你的POCO:
public class MyClass
{
public int Id { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public virtual MyClass MyClass {get;set}
public int MyClassId {get;set}
}
<强>用法:强>
提交的查询将返回所有MyClass
个实例,其中至少一个项Name
将满足条件:
var answer = db.MyClass.Where(c => c.Items.Any(item => item.Name == "Sam")).ToList();
此查询将返回所有MyClass
个实例,其中所有项Name
将满足条件:
var answer = db.MyClass.Where(c => c.Items.All(item => item.Name == "Sam")).ToList();