У меня есть класс под названием Query с именем CreatedBy, имя пользователя, которое его создало. У меня также есть класс под названием Разрешения с разрешениями для запроса.Entity Framework Query на основе фильтра дочерних объектов и в то же время на основном объекте
Я создал запрос, который возвращает меня на основе текущего пользователя, запросы, к которому пользователь имеет доступ, на основе коллекции разрешений, но мне нужно СОХРАНИТЬ, что с запросами, которые пользователь создал.
Если по какой-либо причине пользователь, создавший его, его также в коллекции разрешений, он не должен возвращаться дважды.
Вот мой код
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 RequestType { 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)
{
return _context.Queries.Where(q => q.Permissions.Any(p => p.UserName.Equals(userName)));
}