在Linq查询中仅显示用户的“允许值”

本文关键字:许值 允许值 用户 查询 Linq 显示 | 更新日期: 2023-09-27 17:58:14

我有以下表格

public class Area
{
    public int AreaId {get;set;}
    public string AreaName {get;set;}   
}
public class User_AREA
{
    public int UserId {get;set;}
    public int AreaId {get;set;}
}

public class Customer
{
    public int CustomerId {get;set;}
    public int AreaId {get;set;}
    public string CustomerName {get;set;}
}

我想让Linq Query给出结果:在Linq 中显示所有允许客户选择/登录的用户

var list = _customerService.GetAllCustomer(int UserId) {}

在Linq查询中仅显示用户的“允许值”

假设您有一个名为db:的上下文对象

private List<Customer> GetAllCustomer(int UserId)
{
    var CustomersByUser = (from a in db.User_AREA
                          join c in db.Customer
                          on a.AreaId equals c.AreaId
                          where a.UserId = UserId
                          select c).ToList();
    return CustomersByUser;
}

上面连接了两个表,只返回与使用UserId参数传递给方法的用户共享相同区域的客户。

您可以通过哪里过滤来获得所有客户。例如,

 var list= _wheelingService.GetAllCustomer().Where(i=>User_AREA.Any(p=>p.AreaId ==i.AreaId && p.UserId==UserId);

感谢它的工作,但您忘记添加p.UserId==UserId