我过滤掉了用户在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();
}
}
这显然不起作用,但这是我需要它做的。
错误1运营商&#39; ||&#39;不能应用于'System.Linq.IQueryable&#39;类型的操作数。和&#39; lambda表达&#39;
错误2运营商&#39;。&#39;不能应用于&#39; lambda表达式&#39;
类型的操作数
答案 0 :(得分:7)
仅使用y =>
一次
return context.Documents
.Where(j => j.CompanyName == user.CompanyName1 ||
j.CompanyName == user.CompanyName2 ||
j.CompanyName == user.CompanyName2)
.ToList();