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

tex*_*697 1 c# lambda asp.net-web-api

我过滤掉了用户在webapi Get call中可以看到的文档.Document对象中的CompanyName必须与分配了CompanyName的用户匹配.因此,如果分配了CompanyName1和CompanyName2的用户只能返回与其匹配的文档.

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();
        }
    }
Run Code Online (Sandbox Code Playgroud)

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

错误1运算符'||' 不能应用于'System.Linq.IQueryable'和'lambda expression'类型的操作数

错误2运营商'.' 不能应用于'lambda表达式'类型的操作数

Fre*_*dou 7

只使用y =>一次

       return context.Documents
            .Where(j => j.CompanyName == user.CompanyName1 ||
                        j.CompanyName == user.CompanyName2 ||  
                        j.CompanyName == user.CompanyName2)
            .ToList();
Run Code Online (Sandbox Code Playgroud)