//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; }
[...]
}
ПримечаниеТег
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; }
}