0
  1. 我有一个名为 Query 的课程。
  2. 我有一个名为 Permissions 的课程
  3. 查询具有权限集合
  4. 我需要查询用户有权限的查询。

但我不确定如何制作 where 子句。

public class Query
{
    public int QueryId { get; set; }
    public string QueryName { get; set; }
    public string QuerySql { get; set; }
    public string CreatedBy { get; set; }
    public string QueryType { get; set; }
    public string Column1 { get; set; }
    public string Operator1 { get; set; }
    public string Value1 { get; set; }
    public string Connector2 { get; set; }
    public string Column2 { get; set; }
    public string Operator2 { get; set; }
    public string Value2 { get; set; }
    public string Connector3 { get; set; }
    public string Column3 { get; set; }
    public string Operator3 { get; set; }
    public string Value3 { get; set; }
    public virtual ICollection<Permission>  Permissions { get; set; }
}

public class Permission
{
    public int PermissionId { get; set; }
    public string UserName { get; set; }
}

public IQueryable<Query> GetQueriesForUser(string userName)
{
    _context.Queries.Where(m=>m.Permissions.Contains(???))
}
4

1 回答 1

3

因此,您希望所有具有该查询
权限的查询
,其中权限的用户名是用户的用户名

你可以使用类似的东西:

_context.Queries.Where(q => q.Permissions.Any(p => p.UserName.Equals(userName)));
于 2012-05-31T09:17:03.030 回答