//searchText contains tags in one string. E.g. "programming javascript angular"
string[] separators = { " " };
//Splitting string to array
List<string> tags = searchText.Split(separators, StringSplitOptions.RemoveEmptyEntries).ToList();
//getting notes which all tags equals tags given by user
var allNotes = db.Notes.Where(dbnote => tags.All(givenTag => dbnote.NoteTags.Any(dbNoteTag => dbNoteTag.Tag.Name == givenTag))).Include(x => x.NoteTags).ThenInclude(x => x.Tag);
var dataToList = allNotes.ToList();
Проблемът се появява в последния ред.
Възникна изключение от тип „System.InvalidOperationException“ в mscorlib.dll, но не беше обработено в потребителския код
Допълнителна информация: Последователността съдържа повече от един елемент
Забележка:
public class Note
{
public Note()
{
NoteTags = new HashSet<NoteTag>();
}
public int ID { get; set; }
public virtual ICollection<NoteTag> NoteTags { get; set; }
[...]
}
NoteTag
public class NoteTag
{
public int NoteId { get; set; }
public Note Note { get; set; }
public int TagId { get; set; }
public Tag Tag { get; set; }
}
Етикет
public class Tag
{
public Tag()
{
NoteTags = new HashSet<NoteTag>();
}
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<NoteTag> NoteTags { get; set; }
}