📜  .net 实体查询多个连接条件 - C# (1)

📅  最后修改于: 2023-12-03 14:38:46.820000             🧑  作者: Mango

.Net 实体查询多个连接条件 - C#

在进行实体查询时,经常需要使用多个连接条件进行筛选,以获取需要的数据。C# 中的 Entity Framework 提供了多种方法来实现这个目的。

使用 Where 方法和 AND 连接条件

可以使用 Where 方法和 AND 连接条件来实现多个连接条件的查询。例如,可以使用以下代码查询 Person 表中满足两个条件的人员信息:

using (var context = new MyDbContext())
{
    var people = context.Person
        .Where(p => p.Age > 18 && p.Gender == "Male")
        .ToList();
}

以上代码中,Where 方法接收一个 Func<T, bool> 委托作为参数,其中 p 表示 Person 实体对象,p.Age > 18 && p.Gender == "Male" 表示两个条件的连接结果。

使用 Where 方法和 OR 连接条件

与使用 AND 连接条件类似,可以使用 Where 方法和 OR 连接条件来实现多个条件的查询。例如,可以使用以下代码查询 Person 表中满足以下两个任一条件的人员信息:

using (var context = new MyDbContext())
{
    var people = context.Person
        .Where(p => p.Age > 18 || p.Income > 5000)
        .ToList();
}

以上代码中,p.Age > 18 || p.Income > 5000 表示两个条件的连接结果为 OR

使用 Where 方法和 Lambda 表达式连接条件

除了使用 AND/OR 连接条件外,还可以使用多个 Lambda 表达式作为参数,将它们合并为一个查询条件。例如,可以使用以下代码查询 Person 表中满足以下两个任一条件的人员信息:

using (var context = new MyDbContext())
{
    var people = context.Person
        .Where(p => p.Age > 18, p => p.Income > 5000)
        .ToList();
}

以上代码中,第一个 Lambda 表达式 p => p.Age > 18 表示第一个条件,第二个 Lambda 表达式 p => p.Income > 5000 表示第二个条件,两者通过 , 连接表示使用 OR 连接条件。

总结

本文介绍了在 C# 中使用 Entity Framework 查询多个连接条件的方法,其中包括使用 AND/OR 连接条件和使用多个 Lambda 表达式连接条件。以上代码均使用了 Entity Framework 示例上下文对象 MyDbContext,读者可以根据实际情况进行修改。