J'ai ajouté une méthode simple à une entité de mon application appelée TopicCount
qui accepte un booléen. Il compte le nombre d'éléments dans une propriété de navigation et le compte est filtré différemment selon que le booléen passé est vrai ou faux.
public class Board
{
public short BoardID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public bool Hidden { get; set; }
public bool ModsOnly { get; set; }
public bool Locked { get; set; }
public bool Anonymous { get; set; }
public bool AllTopics { get; set; }
public virtual ICollection<Topic> Topics { get; set; }
public long TopicCount(bool isModerator)
{
if (isModerator)
return this.Topics.ToList().Count;
else
return this.Topics
.Where(x => !x.ModsOnly)
.Where(x => !x.Board.ModsOnly)
.Where(x => !x.Board.Hidden)
.Count();
}
}
Lorsque j'appelle ce TopicCount
elle échoue (que le bool soit vrai ou faux) avec l'erreur suivante :
Un DataReader ouvert est déjà associé à cette commande et doit d'abord être fermé.
Des idées ?