c# - ef 4.1 LINQ 将元素过滤到集合中

标签 c# linq entity-framework

我首先使用实体​​框架代码。我有一个集合让我们说:

 IDbSet<A> As {get;set;}

A 是这样一个对象:

 public class A
 {
    public int Id {get;set;}
    public string name {get;set};
    ....
    public IList<B> Bs {get;set;}
 }

而 B 是:

 public clas B
 {
    public int Id {get;set;}
    public string name {get;set;}
 }

使用 linq 我想过滤在其 IList 中包含 B.name == "something"的 As 那么如何实现呢?我正在尝试做类似的事情:

context.As.Where(a => a.Bs.contains(....));

最佳答案

您可以使用 Any()

context.As.Where(a => a.Bs.Any(b => b.name == "something").ToList();

它接受一个谓词并在匹配时返回使其高效。

关于c# - ef 4.1 LINQ 将元素过滤到集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16814859/

相关文章:

c# - ServiceStack.Redis 存储对象超时,key 检索

c# - 导航问题 : PopToRootAsync is not supported globally on iOS, 请使用 NavigationPage

.net - IQueryable<T> 和 IEnumerable<T> 之间有什么区别?

c# - 如何使用 lambda 表达式作为参数?

c# - 有什么好的例子或框架可以教我n层开发吗?

c# - 如何向 Swagger 添加健康检查

c# - 如何异步读取 XML 文件?

c# - Entity Framework ToListAsync() 与 Select()

c# - Entity Framework Core - Take(1)、Single()、First()... 不使用 Oracle 提供程序 (ORA-00933 : SQL command not properly ended)

entity-framework - 为什么 automapper 使 Entity Framework 插入而不是更新?