如何使用 ||在 lambda 表达式中

How to use || inside a lambda expression

我过滤掉了用户可以在 webapi Get 调用中看到的文档。 Document 对象中的 CompanyName 必须与分配给用户的 CompanyName 相匹配。因此,如果为用户分配了 CompanyName1 和 CompanyName2,他们只能 return 匹配它们的文档。

public List<Document> GetDocuments()
    {
        var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
        var user = manager.FindById(User.Identity.GetUserId());
        using (var context = new ApplicationDbContext())
        {

            return context.Documents
                .Where(j => j.CompanyName == user.CompanyName1) || (j => j.CompanyName == user.CompanyName2) || (j => j.CompanyName == user.CompanyName2)
                .ToList();
        }
    }

这显然不起作用,但这是我需要它做的。

Error 1 Operator '||' cannot be applied to operands of type 'System.Linq.IQueryable' and 'lambda expression'

Error 2 Operator '.' cannot be applied to operand of type 'lambda expression'

只使用y =>一次

       return context.Documents
            .Where(j => j.CompanyName == user.CompanyName1 ||
                        j.CompanyName == user.CompanyName2 ||  
                        j.CompanyName == user.CompanyName2)
            .ToList();