Я интегрировал NHibernate.Search в свое веб-приложение, следуя инструкциям из следующих источников:
Я также успешно проиндексировал свою базу данных партиями, и при тестировании на Люке я могу искать термины, которые находятся в любых объектах, которые я пометил как индексируемые.
Однако , когда я пытаюсь обновить сущности «многие ко многим» через мое веб-приложение, мой родительский индекс не обновляется. Например:
public class Books
{
HasAndBelongsToMany(typeof(Author), Table = "BookAuthor", ColumnKey = "BookId", ColumnRef = "AuthorId")]
[IndexedEmbedded]
public IList<Author> Authors
{
get { return authors; }
set { authors = value; }
}
}
public class Author
{
HasAndBelongsToMany(typeof(Book), Table = "BookAuthor", ColumnKey = "AuthorId", ColumnRef = "BookId"), Inverse=true]
[ContainedIn]
public IList<Author> Authors
{
get { return authors; }
set { authors = value; }
}
}
Теперь, когда я пытаюсь сделать что-то вроде myBook.Authors.Add(Author.Create("xxx"))
, я вижу, что мой индекс Автор был обновлен, однако, индекс Книги (который является родительским индексом) не был обновлен, и поиск вновь добавленного автора возвращает пустой результат.
Обратите внимание, что это происходит только при работе с отношениями "многие ко многим".
Я не уверен, почему это так. Кто-нибудь еще испытывал подобные трудности? Я был бы признателен, если бы меня указали в правильном направлении, ура.